Class OdfSchemaDocument

java.lang.Object
org.odftoolkit.odfdom.pkg.OdfPackageDocument
org.odftoolkit.odfdom.dom.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.

  • Field Details

  • Constructor Details

    • 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 Details

    • getJsonOperationQueue

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

      public void setJsonOperationQueue(JsonOperationProducer queue)
    • getOperations

      public org.json.JSONObject getOperations(CollabTextDocument operationDoc) throws SAXException, org.json.JSONException, IOException
      Throws:
      SAXException
      org.json.JSONException
      IOException
    • 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.
    • getContentDom

      public OdfContentDom getContentDom() throws SAXException, IOException
      Return the ODF type-based content DOM of the content.xml
      Returns:
      ODF type-based content DOM or null if no content.xml exists.
      Throws:
      Exception - if content DOM could not be initialized
      SAXException
      IOException
    • getStylesDom

      public OdfStylesDom getStylesDom() throws SAXException, IOException
      Return the ODF type-based styles DOM of the styles.xml
      Returns:
      ODF type-based styles DOM or null if no styles.xml exists.
      Throws:
      Exception - if styles DOM could not be initialized
      SAXException
      IOException
    • getMetaDom

      public OdfMetaDom getMetaDom() throws SAXException, IOException
      Return the ODF type-based metadata DOM of the meta.xml
      Returns:
      ODF type-based meta DOM or null if no meta.xml exists.
      Throws:
      Exception - if meta DOM could not be initialized
      SAXException
      IOException
    • getSettingsDom

      public OdfSettingsDom getSettingsDom() throws SAXException, IOException
      Return the ODF type-based settings DOM of the settings.xml
      Returns:
      ODF type-based settings DOM or null if no settings.xml exists.
      Throws:
      Exception - if settings DOM could not be initialized
      SAXException
      IOException
    • 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.
    • getStyleByName

      public OdfStyle getStyleByName(OdfStyleFamily styleFamily, String styleName) throws SAXException, IOException
      Throws:
      SAXException
      IOException
    • getStyleByDisplayName

      public OdfStyle getStyleByDisplayName(OdfStyleFamily styleFamily, String styleDisplayName) throws SAXException, IOException
      Throws:
      SAXException
      IOException
    • 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
    • getFileDom

      Throws:
      SAXException
      IOException
    • 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