-> prefix
mapping.
This is considered as an interface, though it's implemented
as an abstract class to make it easy to add new methods in
a future.
| Modifier and Type | Field and Description |
|---|---|
| private static final String[] |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public String[] | Returns: always return a non-null (but possibly empty) array. The array stores data like (prefix1,nsUri1,prefix2,nsUri2,...) Use an empty string to represent the empty namespace URI and the default prefix. Null is not allowed as a value in the array.Returns a list of (prefix,namespace URI) pairs that represents namespace bindings available on ancestor elements (that need not be repeated by the JAXB RI.) Sometimes JAXB is used to marshal an XML document, which will be used as a subtree of a bigger document. |
| public String[] | Returns: A list of namespace URIs as an array ofStrings.
This method can return a length-zero array but not null.
None of the array component can be null. To represent
the empty namespace, use the empty string "".Returns a list of namespace URIs that should be declared at the root element. |
| public String[] | Returns: always return a non-null (but possibly empty) array. The array stores data like (prefix1,nsUri1,prefix2,nsUri2,...) Use an empty string to represent the empty namespace URI and the default prefix. Null is not allowed as a value in the array.Similar to |
| public abstract String | Returns: null if there's no prefered prefix for the namespace URI. In this case, the system will generate a prefix for you. Otherwise the system will try to use the returned prefix, but generally there's no guarantee if the prefix will be actually used or not. return "" to map this namespace URI to the default namespace. Again, there's no guarantee that this preference will be honored. If this method returns "" when requirePrefix=true, the return value will be ignored and the system will generate one.The namespace URI for which the prefix needs to be found.
Never be null. "" is used to denote the default namespace. namespaceUri, String When the content tree has a suggestion for the prefix
to the given namespaceUri, that suggestion is passed as a
parameter. Typicall this value comes from the QName.getPrefix
to show the preference of the content tree. This parameter
may be null, and this parameter may represent an already
occupied prefix. suggestion, boolean If this method is expected to return non-empty prefix.
When this flag is true, it means that the given namespace URI
cannot be set as the default namespace. requirePrefix)Returns a preferred prefix for the given namespace URI. |
| EMPTY_STRING | back to summary |
|---|---|
| private static final String[] EMPTY_STRING | |
| NamespacePrefixMapper | back to summary |
|---|---|
| protected NamespacePrefixMapper() Default constructor. | |
| getContextualNamespaceDecls | back to summary |
|---|---|
| public String[] getContextualNamespaceDecls() Returns a list of (prefix,namespace URI) pairs that represents namespace bindings available on ancestor elements (that need not be repeated by the JAXB RI.) Sometimes JAXB is used to marshal an XML document, which will be used as a subtree of a bigger document. When this happens, it's nice for a JAXB marshaller to be able to use in-scope namespace bindings of the larger document and avoid declaring redundant namespace URIs.
This is automatically done when you are marshalling to Namespace bindings returned by this method will be used by the JAXB RI, but will not be re-declared. They are assumed to be available when you insert this subtree into a bigger document. It is NOT OK to return the same binding, or give the receiver a conflicting binding information. It's a responsibility of the caller to make sure that this doesn't happen even if the ancestor elements look like:
| |
| getPreDeclaredNamespaceUris | back to summary |
|---|---|
| public String[] getPreDeclaredNamespaceUris() Returns a list of namespace URIs that should be declared at the root element. By default, the JAXB RI 1.0.x produces namespace declarations only when they are necessary, only at where they are used. Because of this lack of look-ahead, sometimes the marshaller produces a lot of namespace declarations that look redundant to human eyes. For example,
The JAXB RI 2.x mostly doesn't exhibit this behavior any more, as it declares all statically known namespace URIs (those URIs that are used as element/attribute names in JAXB annotations), but it may still declare additional namespaces in the middle of a document, for example when (i) a QName as an attribute/element value requires a new namespace URI, or (ii) DOM nodes as a portion of an object tree requires a new namespace URI. If you know in advance that you are going to use a certain set of namespace URIs, you can override this method and have the marshaller declare those namespace URIs at the root element.
For example, by returning
To control prefixes assigned to those namespace URIs, use the
| |
| getPreDeclaredNamespaceUris2 | back to summary |
|---|---|
| public String[] getPreDeclaredNamespaceUris2() Similar to
With This version eliminates the needs by returning an array of pairs.
| |
| getPreferredPrefix | back to summary |
|---|---|
| public abstract String getPreferredPrefix(String namespaceUri, String suggestion, boolean requirePrefix) Returns a preferred prefix for the given namespace URI. This method is intended to be overrided by a derived class. As noted in the return value portion of the javadoc, there are several cases where the preference cannot be honored. Specifically, as of JAXB RI 2.0 and onward:
| |