| java.lang.Object net.sf.saxon.om.NamePool
NamePool | public class NamePool implements Serializable(Code) | | 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 |
Inner Class :public static class NamePoolLimitException extends RuntimeException | |
Method Summary | |
public synchronized int | allocate(String prefix, String uri, String localName) Allocate a name from the pool, or a new Name if there is not a matching one there
Parameters: prefix - Parameters: uri - - the namespace URI. | public synchronized int | allocate(String prefix, short uriCode, String localName) | public int | allocateClarkName(String expandedName) | public synchronized short | allocateCodeForURI(String uri) | public int | allocateLexicalQName(CharSequence qname, boolean useDefault, NamespaceResolver resolver, NameChecker checker) Get the nameCode for a lexical QName, given a namespace resolver.
Parameters: qname - the lexical QName. Parameters: useDefault - if true, an absent prefix is resolved by the NamespaceResolverto the namespace URI assigned to the prefix "". | public synchronized int | allocateNamespaceCode(String prefix, String uri) Allocate the namespace code for a namespace prefix/URI pair.
Create it if not already present
Parameters: prefix - the namespace prefix Parameters: uri - the namespace URI an integer code identifying the namespace. | public synchronized int | allocateNamespaceCode(int namecode) Allocate a namespace code for the prefix/URI of a given namecode
Parameters: namecode - a code identifying an expanded QName, e.g. | public synchronized void | diagnosticDump() Diagnostic print of the namepool contents. | public String | getClarkName(int nameCode) Get the Clark form of a name, given its name code or fingerprint
the local name if the name is in the null namespace, or "{uri}local"otherwise. | public Object | getClientData(Class key) | public short | getCodeForPrefix(String prefix) | public short | getCodeForURI(String uri) | public static NamePool | getDefaultNamePool() | public String | getDisplayName(int nameCode) | public int | getFingerprint(String uri, String localName) Get a fingerprint for the name with a given uri and local name.
These must be present in the NamePool.
The fingerprint has the property that if two fingerprint are the same, the names
are the same (ie. | public int | getFingerprintForExpandedName(String expandedName) | public String | getLocalName(int nameCode) | public int | getNamespaceCode(String prefix, String uri) Get the existing namespace code for a namespace prefix/URI pair. | public int | getNamespaceCode(int namecode) Allocate a namespace code for a given namecode
Parameters: namecode - a code identifying an expanded QName, e.g. | public String | getPrefix(int nameCode) | public String | getPrefixFromNamespaceCode(int code) Get the namespace prefix from a namespace code. | public String | getPrefixWithIndex(short uriCode, int index) | final public TypeHierarchy | getTypeHierarchy() | public String | getURI(int nameCode) | public short | getURICode(int nameCode) | public String | getURIFromNamespaceCode(int code) Get the namespace URI from a namespace code. | public String | getURIFromURICode(short code) Get the namespace URI from a URI code. | public static String[] | parseClarkName(String expandedName) | public void | setClientData(Class key, Object value) | public static void | setDefaultNamePool(NamePool pool) | public synchronized void | statistics() Statistics summarizing the namepool contents. | public String | suggestPrefixForURI(String URI) Suggest a prefix for a given URI. |
FP_MASK | final public static int FP_MASK(Code) | | FP_MASK is a mask used to obtain a fingerprint from a nameCode. Given a
nameCode nc, the fingerprint is nc & NamePool.FP_MASK .
(In practice, Saxon code often uses the literal constant 0xfffff.)
The difference between a nameCode is that a nameCode contains information
about the prefix of a name, the fingerprint depends only on the namespace
URI and local name. Note that the "null" nameCode (-1) does not produce
the "null" fingerprint (also -1) when this mask is applied.
|
hashslots | NameEntry[] hashslots(Code) | | |
prefixesUsed | short prefixesUsed(Code) | | |
NamePool | public NamePool()(Code) | | |
allocate | public synchronized int allocate(String prefix, String uri, String localName)(Code) | | Allocate a name from the pool, or a new Name if there is not a matching one there
Parameters: prefix - Parameters: uri - - the namespace URI. The null URI is represented as an empty string. Parameters: localName - an integer (the "namecode") identifying the name within the namepool.The Name itself may be retrieved using the getName(int) method |
allocate | public synchronized int allocate(String prefix, short uriCode, String localName)(Code) | | Allocate a name from the pool, or a new Name if there is not a matching one there
Parameters: prefix - - the namespace prefix Parameters: uriCode - - the code of the URI Parameters: localName - - the local part of the QName an integer (the "namecode") identifying the name within the namepool. |
allocateClarkName | public int allocateClarkName(String expandedName)(Code) | | Allocate a fingerprint given a Clark Name
|
allocateCodeForURI | public synchronized short allocateCodeForURI(String uri)(Code) | | Allocate the uri code for a given URI;
create one if not found
|
allocateLexicalQName | public int allocateLexicalQName(CharSequence qname, boolean useDefault, NamespaceResolver resolver, NameChecker checker) throws DynamicError(Code) | | Get the nameCode for a lexical QName, given a namespace resolver.
Parameters: qname - the lexical QName. Parameters: useDefault - if true, an absent prefix is resolved by the NamespaceResolverto the namespace URI assigned to the prefix "". If false, an absent prefix isinterpreted as meaning the name is in no namespace. Parameters: checker - NameChecker used to check names against the XML 1.0 or 1.1 specification the corresponding nameCode throws: net.sf.saxon.trans.DynamicError - if the string is not a valid lexical QName orif the namespace prefix has not been declared* |
allocateNamespaceCode | public synchronized int allocateNamespaceCode(String prefix, String uri)(Code) | | Allocate the namespace code for a namespace prefix/URI pair.
Create it if not already present
Parameters: prefix - the namespace prefix Parameters: uri - the namespace URI an integer code identifying the namespace. The namespace codeidentifies both the prefix and the URI. |
allocateNamespaceCode | public synchronized int allocateNamespaceCode(int namecode)(Code) | | Allocate a namespace code for the prefix/URI of a given namecode
Parameters: namecode - a code identifying an expanded QName, e.g. of an element or attribute a code identifying the namespace used in the given name. The namespace codeidentifies both the prefix and the URI. |
diagnosticDump | public synchronized void diagnosticDump()(Code) | | Diagnostic print of the namepool contents.
|
getClarkName | public String getClarkName(int nameCode)(Code) | | Get the Clark form of a name, given its name code or fingerprint
the local name if the name is in the null namespace, or "{uri}local"otherwise. The name is always interned. |
getClientData | public Object getClientData(Class key)(Code) | | Retrieve client data on behalf of a user of the namepool
|
getCodeForPrefix | public short getCodeForPrefix(String prefix)(Code) | | Get the prefix code for a given Prefix
-1 if not found |
getCodeForURI | public short getCodeForURI(String uri)(Code) | | Get the uri code for a given URI
-1 if not present in the name pool |
getDefaultNamePool | public static NamePool getDefaultNamePool()(Code) | | Get the singular default NamePool
|
getDisplayName | public String getDisplayName(int nameCode)(Code) | | Get the display form of a name (the QName), given its name code or fingerprint
|
getFingerprint | public int getFingerprint(String uri, String localName)(Code) | | Get a fingerprint for the name with a given uri and local name.
These must be present in the NamePool.
The fingerprint has the property that if two fingerprint are the same, the names
are the same (ie. same local name and same URI).
-1 if not found |
getFingerprintForExpandedName | public int getFingerprintForExpandedName(String expandedName)(Code) | | Get fingerprint for expanded name in {uri}local format
|
getLocalName | public String getLocalName(int nameCode)(Code) | | Get the local part of a name, given its name code or fingerprint
|
getNamespaceCode | public int getNamespaceCode(String prefix, String uri)(Code) | | Get the existing namespace code for a namespace prefix/URI pair.
-1 if there is none present |
getNamespaceCode | public int getNamespaceCode(int namecode)(Code) | | Allocate a namespace code for a given namecode
Parameters: namecode - a code identifying an expanded QName, e.g. of an element or attribute a code identifying the namespace used in the given name. The namespace codeidentifies both the prefix and the URI. Return -1 if no namespace code has been allocated(in this case the caller should call allocateNamespaceCode() to get one). |
getPrefix | public String getPrefix(int nameCode)(Code) | | Get the prefix part of a name, given its name code or fingerprint
|
getPrefixFromNamespaceCode | public String getPrefixFromNamespaceCode(int code)(Code) | | Get the namespace prefix from a namespace code.
|
getPrefixWithIndex | public String getPrefixWithIndex(short uriCode, int index)(Code) | | Get a prefix among all the prefixes used with a given URI, given its index
null if not found |
getURI | public String getURI(int nameCode)(Code) | | Get the namespace-URI of a name, given its name code or fingerprint
|
getURICode | public short getURICode(int nameCode)(Code) | | Get the URI code of a name, given its name code or fingerprint
|
getURIFromNamespaceCode | public String getURIFromNamespaceCode(int code)(Code) | | Get the namespace URI from a namespace code.
|
getURIFromURICode | public String getURIFromURICode(short code)(Code) | | Get the namespace URI from a URI code.
|
parseClarkName | public static String[] parseClarkName(String expandedName)(Code) | | Parse a Clark-format expanded name, returning the URI and local name
|
setClientData | public void setClientData(Class key, Object value)(Code) | | Save client data on behalf of a user of the namepool
|
setDefaultNamePool | public static void setDefaultNamePool(NamePool pool)(Code) | | Set the default NamePool
(used after loading a compiled stylesheet)
|
statistics | public synchronized void statistics()(Code) | | Statistics summarizing the namepool contents.
This method outputs summary statistical information to System.err
|
suggestPrefixForURI | public String suggestPrefixForURI(String URI)(Code) | | Suggest a prefix for a given URI. If there are several, it's undefined which one is returned.
If there are no prefixes registered for this URI, return null.
|
|
|