Class NamePool
java.lang.Object
com.icl.saxon.om.NamePool
An object representing a collection of XML names, each containing a Namespace URI,
a Namespace prefix, and a local name; plus a collection of namespaces, each
consisting of a prefix/URI pair.
The equivalence betweem names depends only on the URI and the local name. The prefix is retained for documentary purposes only: it is useful when reconstructing a document to use prefixes that the user is familiar with.
The NamePool eliminates duplicate names if they have the same prefix, uri, and local part. It retains duplicates if they have different prefixes
- Author:
- Michael H. Kay
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintAllocate a name from the pool, or a new Name if there is not a matching one thereintAllocate a name from the pool, or a new Name if there is not a matching one thereshortallocateCodeForPrefix(String prefix) Allocate the prefix code for a given Prefix; create one if not foundshortallocateCodeForURI(String uri) Allocate the uri code for a given URI; create one if not found, unless the namepool is sealedintallocateNamespaceCode(int namecode) Allocate a namespace code for the prefix/URI of a given namecodeintallocateNamespaceCode(String prefix, String uri) Allocate the namespace code for a namespace prefix/URI pair.voidDiagnostic print of the namepool contentsvoidThe following code is used to create a list of Java declarations for the fingerprints of standard names used in a stylesheet.shortgetCodeForPrefix(String prefix) Get the prefix code for a given PrefixshortgetCodeForURI(String uri) Get the uri code for a given URIstatic NamePoolGet the singular default NamePoolgetDisplayName(int nameCode) Get the display form of a name (the QName), given its name code or fingerprintintgetFingerprint(int nameCode) Get a fingerprint for the name with a given name code.intgetFingerprint(String uri, String localName) Get a fingerprint for the name with a given uri and local name.getLocalName(int nameCode) Get the local part of a name, given its name code or fingerprintintgetNamespaceCode(int namecode) Get a namespace code for the prefix/URI of a given namecodeintgetNamespaceCode(String prefix, String uri) Get the existing namespace code for a namespace prefix/URI pair.getPrefix(int nameCode) Get the prefix part of a name, given its name code or fingerprintgetPrefixFromNamespaceCode(int code) Get the namespace prefix from a namespace codeintgetPrefixIndex(short uriCode, String prefix) Get the index of a prefix among all the prefixes used with a given URIgetPrefixWithIndex(short uriCode, int index) Get a prefix among all the prefixes used with a given URI, given its indexGet the standard namesgetURI(int nameCode) Get the namespace-URI of a name, given its name code or fingerprintshortgetURICode(int nameCode) Get the URI code of a name, given its name code or fingerprintgetURIFromNamespaceCode(int code) Get the namespace URI from a namespace codegetURIFromURICode(short code) Get the namespace URI from a URI codebooleanhasSignature(Object sig) Test whether the namepool contains names defined in a particular StylesheetvoidimportPool(NamePool other) Import the names defined in another namepool (typically the one used to create the stylesheet: these names are imported into the namepool used to build the source document).booleanisSealed()Determine whether the namepool is sealedvoidLoad the standard names that have a special meaning to XSLTvoidMark the NamePool to indicate that it contains names defined in a particular stylesheet
-
Field Details
-
Constructor Details
-
NamePool
public NamePool()
-
-
Method Details
-
getDefaultNamePool
Get the singular default NamePool -
loadStandardNames
public void loadStandardNames()Load the standard names that have a special meaning to XSLT -
getStandardNames
Get the standard names -
setStylesheetSignature
Mark the NamePool to indicate that it contains names defined in a particular stylesheet -
hasSignature
Test whether the namepool contains names defined in a particular Stylesheet -
importPool
Import the names defined in another namepool (typically the one used to create the stylesheet: these names are imported into the namepool used to build the source document). No longer used unless name pools are managed manually- Throws:
TransformerException
-
isSealed
public boolean isSealed()Determine whether the namepool is sealed -
allocateNamespaceCode
-
getNamespaceCode
-
allocateCodeForURI
Allocate the uri code for a given URI; create one if not found, unless the namepool is sealed -
getCodeForURI
Get the uri code for a given URI- Returns:
- -1 if not present in the name pool
-
allocateCodeForPrefix
Allocate the prefix code for a given Prefix; create one if not found -
getCodeForPrefix
Get the prefix code for a given Prefix- Returns:
- -1 if not found
-
getPrefixIndex
Get the index of a prefix among all the prefixes used with a given URI- Returns:
- -1 if not found
-
getPrefixWithIndex
Get a prefix among all the prefixes used with a given URI, given its index- Returns:
- null if not found
-
allocate
Allocate a name from the pool, or a new Name if there is not a matching one there- Parameters:
prefix-uri- - the namespace URIlocalName-- Returns:
- an integer (the "namecode") identifying the name within the namepool. The Name itself may be retrieved using the getName(int) method
-
allocate
-
allocateNamespaceCode
public int allocateNamespaceCode(int namecode) Allocate a namespace code for the prefix/URI of a given namecode -
getNamespaceCode
public int getNamespaceCode(int namecode) Get a namespace code for the prefix/URI of a given namecode -
getURI
Get the namespace-URI of a name, given its name code or fingerprint -
getURICode
public short getURICode(int nameCode) Get the URI code of a name, given its name code or fingerprint -
getLocalName
Get the local part of a name, given its name code or fingerprint -
getPrefix
Get the prefix part of a name, given its name code or fingerprint -
getDisplayName
Get the display form of a name (the QName), given its name code or fingerprint -
getFingerprint
public int getFingerprint(int nameCode) Get a fingerprint for the name with a given name code. The signature has the property that if two signatures are the same, the names are the same (ie. same local name and same URI) -
getFingerprint
Get a fingerprint for the name with a given uri and local name. These must be present in the NamePool. The signature has the property that if two signatures are the same, the names are the same (ie. same local name and same URI).- Returns:
- -1 if not found
-
getURIFromNamespaceCode
Get the namespace URI from a namespace code -
getURIFromURICode
Get the namespace URI from a URI code -
getPrefixFromNamespaceCode
Get the namespace prefix from a namespace code -
diagnosticDump
public void diagnosticDump()Diagnostic print of the namepool contents -
generateJavaConstants
public void generateJavaConstants()The following code is used to create a list of Java declarations for the fingerprints of standard names used in a stylesheet. This code is executed while building Saxon, to create the constant definitions appearing in the StandardNames module.
-