Interface QNameAwareOMDataSource

  • All Superinterfaces:
    OMDataSource
    All Known Implementing Classes:
    JAXBOMDataSource, WrappedTextNodeOMDataSource, WrappedTextNodeOMDataSourceFromDataSource, WrappedTextNodeOMDataSourceFromReader

    public interface QNameAwareOMDataSource
    extends OMDataSource
    Optional interface implemented by OMDataSource implementations that have knowledge about the local name, namespace URI and/or namespace prefix of the element they represent. This interface is used by OMSourcedElement to lazily determine the name of the element without expanding it. The information returned by the implementation may be partial; e.g. the data source may know about the local name and namespace URI but it may be unable to predict the namespace prefix. The returned information must be accurate, i.e. it must match the name of the root element in the document returned by OMDataSource.getReader().

    This interface should be implemented by OMDataSource implementations that have an efficient way to determine the root element name (or part of it) from the information effectively used by OMDataSource.getReader() to construct the XMLStreamReader instance. In practice this applies to OMDataSource implementations that satisfy one of the following conditions:

    • The data source wraps another type of object and is able to determine the element name from that object in an efficient way. E.g. this is often the case if the data source uses a Java-to-XML mapping framework to transform the wrapped object into XML.
    • The QName of the element is configurable and supplied by the application code when the data source is instantiated.
    This interface should not be implemented if the returned information would be supplied by the application code when the data source is instantiate, without the data source being able to guarantee that the information is accurate (i.e. without OMDataSource.getReader() actually using that information). In fact, in this case the application code should use OMFactory.createOMElement(OMDataSource, String, OMNamespace) or OMFactory.createOMElement(OMDataSource, QName) to supply the QName information it has.
    • Method Detail

      • getLocalName

        String getLocalName()
        Get the local name of the element represented by this data source.
        Returns:
        the local name of the element or null if the local name is not known
      • getNamespaceURI

        String getNamespaceURI()
        Get the namespace URI of the element represented by this data source.
        Returns:
        the namespace URI of the element, the empty string if the element has no namespace or null if the namespace URI is not known
      • getPrefix

        String getPrefix()
        Get the namespace prefix of the element represented by this data source.
        Returns:
        the prefix of the element, the empty string if the element has no prefix or null if the prefix is not known; the implementation is expected to return an empty string if getNamespaceURI() returns an empty string (because an element without namespace must not have a prefix)