Class OdfSchemaDocument

  • All Implemented Interfaces:
    Closeable, AutoCloseable
    Direct Known Subclasses:
    OdfDocument

    public abstract class OdfSchemaDocument
    extends OdfPackageDocument
    A document in ODF is from the package view a directory with a media type. If the media type represents a document described by the ODF 1.2 Schema, certain files are assumed within: content.xml, styles.xml, metadata.xml and settings.xml.

    The class represents such a document, providing easier access to its XML files.

    • Constructor Detail

      • OdfSchemaDocument

        protected OdfSchemaDocument​(OdfPackage pkg,
                                    String internalPath,
                                    String mediaTypeString)
        Creates a new OdfSchemaDocument.
        Parameters:
        pkg - - the ODF Package that contains the document. A baseURL is being generated based on its location.
        internalPath - - the directory path within the package from where the document should be loaded.
        mediaTypeString - - media type of stream. If unknown null can be used.
    • Method Detail

      • getJsonOperationQueue

        public JsonOperationProducer getJsonOperationQueue()
        Returns:
        JSONObject of operations
      • getRootComponent

        public Component getRootComponent()
        Returns the component tree of the document. The component tree is a high level abstraction of components (table, paragraph, character, etc.) from the XML implementation details of the document.

        The DOM of the content.xml will be created if not done before.

      • getRootComponentElement

        public OdfElement getRootComponentElement​(String masterStyleName,
                                                  PageArea pageArea,
                                                  boolean createIfNotExisting)
        Returns the component tree of the document. The component tree is a high level abstraction of components (table, paragraph, character, etc.) from the XML implementation details of the document.

        The DOM of the content.xml will be created if not done before.

        Parameters:
        masterStyleName - the name of the master style
        localName - the local name of the header or footer XML element
        Returns:
        the header or footer element belonging to the given master page style
      • setRootComponent

        public void setRootComponent​(Component rootComponent)
        For instance, header and footer have their own component trees aside the main document. Therefore in a text document may exist three root components.
      • getContentStream

        public InputStream getContentStream()
                                     throws Exception
        Gets the ODF content.xml file as stream.
        Returns:
        - a stream of the ODF content 'content.xml' file
        Throws:
        Exception - - if the stream can not be extracted
      • getStylesStream

        public InputStream getStylesStream()
                                    throws Exception
        Gets the ODF style.xml file as stream.
        Returns:
        - a stream of the ODF style 'styles.xml' file
        Throws:
        Exception - - if the stream can not be extracted
      • getSettingsStream

        public InputStream getSettingsStream()
                                      throws Exception
        Gets the ODF settings.xml file as stream.
        Returns:
        - a stream of the ODF settings 'setting.xml' file
        Throws:
        Exception - - if the stream can not be extracted
      • getMetaStream

        public InputStream getMetaStream()
                                  throws Exception
        Gets the ODF metadata.xml file as stream.
        Returns:
        - a stream of the ODF metadata 'meta.xml' file
        Throws:
        Exception - - if the stream can not be extracted
      • getXMLFilePath

        protected String getXMLFilePath​(OdfSchemaDocument.OdfXMLFile file)
        Get the relative path for an embedded ODF document including its file name.
        Parameters:
        file - represents one of the standardized XML ODF files.
        Returns:
        path to embedded ODF XML file relative to ODF package root.
      • getBaseURI

        public String getBaseURI()
        Get the URI, where this ODF document is stored.
        Returns:
        the URI to the ODF document. Returns null if document is not stored yet.
      • setContentDom

        public void setContentDom​(OdfContentDom contentDom)
        Sets the ODF type-based content DOM of the content.xml
        Parameters:
        contentDom - ODF type-based content DOM or null if no content.xml exists.
      • setStylesDom

        public void setStylesDom​(OdfStylesDom stylesDom)
        Sets the ODF type-based styles DOM of the styles.xml
        Parameters:
        stylesDom - ODF type-based styles DOM or null if no styles.xml exists.
      • setMetaDom

        public void setMetaDom​(OdfMetaDom metaDom)
        Sets the ODF type-based meta DOM of the meta.xml
        Parameters:
        metaDom - ODF type-based meta DOM or null if no meta.xml exists.
      • setSettingsDom

        public void setSettingsDom​(OdfSettingsDom settingsDom)
        Sets the ODF type-based settings DOM of the settings.xml
        Parameters:
        settingsDom - ODF type-based settings DOM or null if no settings.xml exists.
      • getDocumentStyles

        public OdfOfficeStyles getDocumentStyles()
        Returns:
        the office:styles element from the styles dom
      • getOfficeMasterStyles

        public OdfOfficeMasterStyles getOfficeMasterStyles()
        return the office:master-styles element of this document.
        Returns:
        the office:master-styles element
      • getOrCreateDocumentStyles

        public OdfOfficeStyles getOrCreateDocumentStyles()
        Returns:
        the office:styles element from the styles dom. If there is not yet such an element, it is created.
      • getTables

        @Deprecated(since="explicit state whether the search should be recursive")
        public List<TableTableElement> getTables()
        Deprecated.
        Return a list of table features in this document.
        Returns:
        a list of table features in this document.
      • getTables

        public List<TableTableElement> getTables​(boolean deepSearch)
        Return a list of table features in this document.
        Parameters:
        deepSearch - Go through the whole document in search for tables (including master pages, headers, and footers), or search only at root level for ODS documents.
        Returns:
        a list of table features in this document.
      • getMasterPages

        @Deprecated
        public Map<String,​StyleMasterPageElement> getMasterPages()
                                                                throws Exception
        Deprecated.
        This method will be moved to the generated sources as soon code generation was improved!
        ToDo: Instead of adding all elements using an index to the document, we might add a pattern to the code generation to create a HashMap either on demand (whenever such a structure is required from the user) or by default
        Throws:
        Exception
      • close

        public void close()
        Close the OdfPackage and release all temporary created data. After execution of this method, this class is no longer usable. Do this as the last action to free resources. Closing an already closed document has no effect. Note that this will not close any cached documents.
        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface Closeable
        Overrides:
        close in class OdfPackageDocument
      • getRDFMetadata

        public org.apache.jena.rdf.model.Model getRDFMetadata()
                                                       throws Exception
        Get all two types of RDF Metadata through GRDDL XSLT: http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#__RefHeading__1415068_253892949
        Throws:
        Exception
      • getInContentMetadata

        public org.apache.jena.rdf.model.Model getInContentMetadata()
                                                             throws Exception
        Get In Content RDF Metadata through GRDDL XSLT http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#__RefHeading__1415070_253892949
        Throws:
        Exception
      • getInContentMetadataFromCache

        public org.apache.jena.rdf.model.Model getInContentMetadataFromCache()
                                                                      throws Exception
        Get in-content metadata cache model
        Returns:
        The in-content metadata cache model
        Throws:
        Exception
      • getManifestRDFMetadata

        public org.apache.jena.rdf.model.Model getManifestRDFMetadata()
                                                               throws Exception
        Get RDF metadata from manifest.rdf and those rdf files registered in the manifest.xml as "application/rdf+xml" through GRDDL XSLT http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#__RefHeading__1415072_253892949
        Throws:
        Exception
      • getBookmarkRDFMetadata

        public org.apache.jena.rdf.model.Model getBookmarkRDFMetadata()
                                                               throws Exception
        Get in-content metadata model of bookmarks
        Returns:
        The in-content metadata model of bookmarks
        Throws:
        Exception