Class DOMInputImpl

  • All Implemented Interfaces:
    org.w3c.dom.ls.LSInput

    public class DOMInputImpl
    extends java.lang.Object
    implements org.w3c.dom.ls.LSInput
    This Class DOMInputImpl represents a single input source for an XML entity.

    This Class allows an application to encapsulate information about an input source in a single object, which may include a public identifier, a system identifier, a byte stream (possibly with a specified encoding), and/or a character stream.

    The exact definitions of a byte stream and a character stream are binding dependent.

    There are two places that the application will deliver this input source to the parser: as the argument to the parse method, or as the return value of the DOMResourceResolver.resolveEntity method.

    The DOMParser will use the LSInput object to determine how to read XML input. If there is a character stream available, the parser will read that stream directly; if not, the parser will use a byte stream, if available; if neither a character stream nor a byte stream is available, the parser will attempt to open a URI connection to the resource identified by the system identifier.

    An LSInput object belongs to the application: the parser shall never modify it in any way (it may modify a copy if necessary). Eventhough all attributes in this interface are writable the DOM implementation is expected to never mutate a LSInput.

    See also the Document Object Model (DOM) Level 3 Abstract Schemas and Load and Save Specification.

    INTERNAL:

    Usage of this class is not supported. It may be altered or removed at any time.
    Version:
    $Id: DOMInputImpl.java 699892 2008-09-28 21:08:27Z mrglavas $
    Author:
    Gopal Sharma, SUN Microsystems Inc.
    • Constructor Summary

      Constructors 
      Constructor Description
      DOMInputImpl()
      Default Constructor, constructs an input source
      DOMInputImpl​(java.lang.String publicId, java.lang.String systemId, java.lang.String baseSystemId)
      Constructs an input source from just the public and system identifiers, leaving resolution of the entity and opening of the input stream up to the caller.
      DOMInputImpl​(java.lang.String publicId, java.lang.String systemId, java.lang.String baseSystemId, java.io.InputStream byteStream, java.lang.String encoding)
      Constructs an input source from a byte stream.
      DOMInputImpl​(java.lang.String publicId, java.lang.String systemId, java.lang.String baseSystemId, java.io.Reader charStream, java.lang.String encoding)
      Constructs an input source from a character stream.
      DOMInputImpl​(java.lang.String publicId, java.lang.String systemId, java.lang.String baseSystemId, java.lang.String data, java.lang.String encoding)
      Constructs an input source from a String.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getBaseURI()
      The base URI to be used (see section 5.1.4 in ) for resolving relative URIs to absolute URIs.
      java.io.InputStream getByteStream()
      An attribute of a language-binding dependent type that represents a stream of bytes.
      boolean getCertifiedText()
      If set to true, assume that the input is certified (see section 2.13 in [XML 1.1]) when parsing [XML 1.1].
      java.io.Reader getCharacterStream()
      An attribute of a language-binding dependent type that represents a stream of 16-bit units.
      java.lang.String getEncoding()
      The character encoding, if known.
      java.lang.String getPublicId()
      The public identifier for this input source.
      java.lang.String getStringData()
      A string attribute that represents a sequence of 16 bit units (utf-16 encoded characters).
      java.lang.String getSystemId()
      The system identifier, a URI reference , for this input source.
      void setBaseURI​(java.lang.String baseURI)
      The base URI to be used (see section 5.1.4 in ) for resolving relative URIs to absolute URIs.
      void setByteStream​(java.io.InputStream byteStream)
      An attribute of a language-binding dependent type that represents a stream of bytes.
      void setCertifiedText​(boolean certifiedText)
      If set to true, assume that the input is certified (see section 2.13 in [XML 1.1]) when parsing [XML 1.1].
      void setCharacterStream​(java.io.Reader characterStream)
      An attribute of a language-binding dependent type that represents a stream of 16-bit units.
      void setEncoding​(java.lang.String encoding)
      The character encoding, if known.
      void setPublicId​(java.lang.String publicId)
      The public identifier for this input source.
      void setStringData​(java.lang.String stringData)
      A string attribute that represents a sequence of 16 bit units (utf-16 encoded characters).
      void setSystemId​(java.lang.String systemId)
      The system identifier, a URI reference , for this input source.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • fPublicId

        protected java.lang.String fPublicId
      • fSystemId

        protected java.lang.String fSystemId
      • fBaseSystemId

        protected java.lang.String fBaseSystemId
      • fByteStream

        protected java.io.InputStream fByteStream
      • fCharStream

        protected java.io.Reader fCharStream
      • fData

        protected java.lang.String fData
      • fEncoding

        protected java.lang.String fEncoding
      • fCertifiedText

        protected boolean fCertifiedText
    • Constructor Detail

      • DOMInputImpl

        public DOMInputImpl()
        Default Constructor, constructs an input source
      • DOMInputImpl

        public DOMInputImpl​(java.lang.String publicId,
                            java.lang.String systemId,
                            java.lang.String baseSystemId)
        Constructs an input source from just the public and system identifiers, leaving resolution of the entity and opening of the input stream up to the caller.
        Parameters:
        publicId - The public identifier, if known.
        systemId - The system identifier. This value should always be set, if possible, and can be relative or absolute. If the system identifier is relative, then the base system identifier should be set.
        baseSystemId - The base system identifier. This value should always be set to the fully expanded URI of the base system identifier, if possible.
      • DOMInputImpl

        public DOMInputImpl​(java.lang.String publicId,
                            java.lang.String systemId,
                            java.lang.String baseSystemId,
                            java.io.InputStream byteStream,
                            java.lang.String encoding)
        Constructs an input source from a byte stream.
        Parameters:
        publicId - The public identifier, if known.
        systemId - The system identifier. This value should always be set, if possible, and can be relative or absolute. If the system identifier is relative, then the base system identifier should be set.
        baseSystemId - The base system identifier. This value should always be set to the fully expanded URI of the base system identifier, if possible.
        byteStream - The byte stream.
        encoding - The encoding of the byte stream, if known.
      • DOMInputImpl

        public DOMInputImpl​(java.lang.String publicId,
                            java.lang.String systemId,
                            java.lang.String baseSystemId,
                            java.io.Reader charStream,
                            java.lang.String encoding)
        Constructs an input source from a character stream.
        Parameters:
        publicId - The public identifier, if known.
        systemId - The system identifier. This value should always be set, if possible, and can be relative or absolute. If the system identifier is relative, then the base system identifier should be set.
        baseSystemId - The base system identifier. This value should always be set to the fully expanded URI of the base system identifier, if possible.
        charStream - The character stream.
        encoding - The original encoding of the byte stream used by the reader, if known.
      • DOMInputImpl

        public DOMInputImpl​(java.lang.String publicId,
                            java.lang.String systemId,
                            java.lang.String baseSystemId,
                            java.lang.String data,
                            java.lang.String encoding)
        Constructs an input source from a String.
        Parameters:
        publicId - The public identifier, if known.
        systemId - The system identifier. This value should always be set, if possible, and can be relative or absolute. If the system identifier is relative, then the base system identifier should be set.
        baseSystemId - The base system identifier. This value should always be set to the fully expanded URI of the base system identifier, if possible.
        data - The String Data.
        encoding - The original encoding of the byte stream used by the reader, if known.
    • Method Detail

      • getByteStream

        public java.io.InputStream getByteStream()
        An attribute of a language-binding dependent type that represents a stream of bytes.
        The parser will ignore this if there is also a character stream specified, but it will use a byte stream in preference to opening a URI connection itself.
        If the application knows the character encoding of the byte stream, it should set the encoding property. Setting the encoding in this way will override any encoding specified in the XML declaration itself.
        Specified by:
        getByteStream in interface org.w3c.dom.ls.LSInput
      • setByteStream

        public void setByteStream​(java.io.InputStream byteStream)
        An attribute of a language-binding dependent type that represents a stream of bytes.
        The parser will ignore this if there is also a character stream specified, but it will use a byte stream in preference to opening a URI connection itself.
        If the application knows the character encoding of the byte stream, it should set the encoding property. Setting the encoding in this way will override any encoding specified in the XML declaration itself.
        Specified by:
        setByteStream in interface org.w3c.dom.ls.LSInput
      • getCharacterStream

        public java.io.Reader getCharacterStream()
        An attribute of a language-binding dependent type that represents a stream of 16-bit units. Application must encode the stream using UTF-16 (defined in and Amendment 1 of ).
        If a character stream is specified, the parser will ignore any byte stream and will not attempt to open a URI connection to the system identifier.
        Specified by:
        getCharacterStream in interface org.w3c.dom.ls.LSInput
      • setCharacterStream

        public void setCharacterStream​(java.io.Reader characterStream)
        An attribute of a language-binding dependent type that represents a stream of 16-bit units. Application must encode the stream using UTF-16 (defined in and Amendment 1 of ).
        If a character stream is specified, the parser will ignore any byte stream and will not attempt to open a URI connection to the system identifier.
        Specified by:
        setCharacterStream in interface org.w3c.dom.ls.LSInput
      • getStringData

        public java.lang.String getStringData()
        A string attribute that represents a sequence of 16 bit units (utf-16 encoded characters).
        If string data is available in the input source, the parser will ignore the character stream and the byte stream and will not attempt to open a URI connection to the system identifier.
        Specified by:
        getStringData in interface org.w3c.dom.ls.LSInput
      • setStringData

        public void setStringData​(java.lang.String stringData)
        A string attribute that represents a sequence of 16 bit units (utf-16 encoded characters).
        If string data is available in the input source, the parser will ignore the character stream and the byte stream and will not attempt to open a URI connection to the system identifier.
        Specified by:
        setStringData in interface org.w3c.dom.ls.LSInput
      • getEncoding

        public java.lang.String getEncoding()
        The character encoding, if known. The encoding must be a string acceptable for an XML encoding declaration ( section 4.3.3 "Character Encoding in Entities").
        This attribute has no effect when the application provides a character stream. For other sources of input, an encoding specified by means of this attribute will override any encoding specified in the XML claration or the Text Declaration, or an encoding obtained from a higher level protocol, such as HTTP .
        Specified by:
        getEncoding in interface org.w3c.dom.ls.LSInput
      • setEncoding

        public void setEncoding​(java.lang.String encoding)
        The character encoding, if known. The encoding must be a string acceptable for an XML encoding declaration ( section 4.3.3 "Character Encoding in Entities").
        This attribute has no effect when the application provides a character stream. For other sources of input, an encoding specified by means of this attribute will override any encoding specified in the XML claration or the Text Declaration, or an encoding obtained from a higher level protocol, such as HTTP .
        Specified by:
        setEncoding in interface org.w3c.dom.ls.LSInput
      • getPublicId

        public java.lang.String getPublicId()
        The public identifier for this input source. The public identifier is always optional: if the application writer includes one, it will be provided as part of the location information.
        Specified by:
        getPublicId in interface org.w3c.dom.ls.LSInput
      • setPublicId

        public void setPublicId​(java.lang.String publicId)
        The public identifier for this input source. The public identifier is always optional: if the application writer includes one, it will be provided as part of the location information.
        Specified by:
        setPublicId in interface org.w3c.dom.ls.LSInput
      • getSystemId

        public java.lang.String getSystemId()
        The system identifier, a URI reference , for this input source. The system identifier is optional if there is a byte stream or a character stream, but it is still useful to provide one, since the application can use it to resolve relative URIs and can include it in error messages and warnings (the parser will attempt to fetch the ressource identifier by the URI reference only if there is no byte stream or character stream specified).
        If the application knows the character encoding of the object pointed to by the system identifier, it can register the encoding by setting the encoding attribute.
        If the system ID is a relative URI reference (see section 5 in ), the behavior is implementation dependent.
        Specified by:
        getSystemId in interface org.w3c.dom.ls.LSInput
      • setSystemId

        public void setSystemId​(java.lang.String systemId)
        The system identifier, a URI reference , for this input source. The system identifier is optional if there is a byte stream or a character stream, but it is still useful to provide one, since the application can use it to resolve relative URIs and can include it in error messages and warnings (the parser will attempt to fetch the ressource identifier by the URI reference only if there is no byte stream or character stream specified).
        If the application knows the character encoding of the object pointed to by the system identifier, it can register the encoding by setting the encoding attribute.
        If the system ID is a relative URI reference (see section 5 in ), the behavior is implementation dependent.
        Specified by:
        setSystemId in interface org.w3c.dom.ls.LSInput
      • getBaseURI

        public java.lang.String getBaseURI()
        The base URI to be used (see section 5.1.4 in ) for resolving relative URIs to absolute URIs. If the baseURI is itself a relative URI, the behavior is implementation dependent.
        Specified by:
        getBaseURI in interface org.w3c.dom.ls.LSInput
      • setBaseURI

        public void setBaseURI​(java.lang.String baseURI)
        The base URI to be used (see section 5.1.4 in ) for resolving relative URIs to absolute URIs. If the baseURI is itself a relative URI, the behavior is implementation dependent.
        Specified by:
        setBaseURI in interface org.w3c.dom.ls.LSInput
      • getCertifiedText

        public boolean getCertifiedText()
        If set to true, assume that the input is certified (see section 2.13 in [XML 1.1]) when parsing [XML 1.1].
        Specified by:
        getCertifiedText in interface org.w3c.dom.ls.LSInput
      • setCertifiedText

        public void setCertifiedText​(boolean certifiedText)
        If set to true, assume that the input is certified (see section 2.13 in [XML 1.1]) when parsing [XML 1.1].
        Specified by:
        setCertifiedText in interface org.w3c.dom.ls.LSInput