Class CharacterSetFactory

java.lang.Object
net.sf.saxon.serialize.charcode.CharacterSetFactory

public class CharacterSetFactory extends Object
This class delivers a CharacterSet object for a given named encoding.

It maintains a mapping from character set names to class names, and a separate mapping from character set names to instances of those classes. This means that a class is not actually instantiated until the encoding is used, but once instantiated, the same instance is used whenever that encoding is used again in the same Configuration.

Note that the purpose of the CharacterSet object is only to record which Unicode characters are represented in the encoding, so that non-encodable characters can be represented as XML or HTML character references. The actual translation from Unicode codepoints to bytes in the chosen encoding is left to the Java IO library.

  • Constructor Details

    • CharacterSetFactory

      public CharacterSetFactory()
      Class has a single instance per Configuration
  • Method Details

    • setCharacterSetImplementation

      public void setCharacterSetImplementation(String encoding, CharacterSet charSet)
      Register an implementation of a character set, using the class name
      Parameters:
      encoding - the name of the character set
      charSet - the name of a class that implements CharacterSet
    • getCharacterSet

      public CharacterSet getCharacterSet(Properties details) throws XPathException
      Make a CharacterSet appropriate to the encoding
      Parameters:
      details - the serialization properties
      Returns:
      the constructed CharacterSet
      Throws:
      XPathException - if the encoding is not recognized
    • getCharacterSet

      public CharacterSet getCharacterSet(String encoding) throws XPathException
      Make a CharacterSet appropriate to the encoding
      Parameters:
      encoding - the required encoding
      Returns:
      the constructed CharacterSet
      Throws:
      XPathException - if the encoding is not recognized
    • main

      public static void main(String[] args) throws Exception
      Main program is a utility to give a list of the character sets supported by the Java VM
      Parameters:
      args - command line arguments (none needed)
      Throws:
      Exception - if anything goes wrong