org.apache.poi.openxml4j.opc.internal.unmarshallers

## Class PackagePropertiesUnmarshaller

- java.lang.Object
- - org.apache.poi.openxml4j.opc.internal.unmarshallers.PackagePropertiesUnmarshaller

- All Implemented Interfaces:
    PartUnmarshaller

      public final class PackagePropertiesUnmarshaller
      extends java.lang.Object
      implements PartUnmarshaller

  Package properties unmarshaller.
  Author:
    Julien Chable

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static java.lang.String` | `KEYWORD_CATEGORY`
    `protected static java.lang.String` | `KEYWORD_CONTENT_STATUS`
    `protected static java.lang.String` | `KEYWORD_CONTENT_TYPE`
    `protected static java.lang.String` | `KEYWORD_CREATED`
    `protected static java.lang.String` | `KEYWORD_CREATOR`
    `protected static java.lang.String` | `KEYWORD_DESCRIPTION`
    `protected static java.lang.String` | `KEYWORD_IDENTIFIER`
    `protected static java.lang.String` | `KEYWORD_KEYWORDS`
    `protected static java.lang.String` | `KEYWORD_LANGUAGE`
    `protected static java.lang.String` | `KEYWORD_LAST_MODIFIED_BY`
    `protected static java.lang.String` | `KEYWORD_LAST_PRINTED`
    `protected static java.lang.String` | `KEYWORD_MODIFIED`
    `protected static java.lang.String` | `KEYWORD_REVISION`
    `protected static java.lang.String` | `KEYWORD_SUBJECT`
    `protected static java.lang.String` | `KEYWORD_TITLE`
    `protected static java.lang.String` | `KEYWORD_VERSION`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PackagePropertiesUnmarshaller()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `checkElementForOPCCompliance(org.w3c.dom.Element el)` Check the element for the following OPC compliance rules:
    `PackagePart` | `unmarshall(UnmarshallContext context, java.io.InputStream in)` Save the content of the package in the stream

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### KEYWORD_CATEGORY

          protected static final java.lang.String KEYWORD_CATEGORY

      See Also:
        Constant Field Values

    - #### KEYWORD_CONTENT_STATUS

          protected static final java.lang.String KEYWORD_CONTENT_STATUS

      See Also:
        Constant Field Values

    - #### KEYWORD_CONTENT_TYPE

          protected static final java.lang.String KEYWORD_CONTENT_TYPE

      See Also:
        Constant Field Values

    - #### KEYWORD_CREATED

          protected static final java.lang.String KEYWORD_CREATED

      See Also:
        Constant Field Values

    - #### KEYWORD_CREATOR

          protected static final java.lang.String KEYWORD_CREATOR

      See Also:
        Constant Field Values

    - #### KEYWORD_DESCRIPTION

          protected static final java.lang.String KEYWORD_DESCRIPTION

      See Also:
        Constant Field Values

    - #### KEYWORD_IDENTIFIER

          protected static final java.lang.String KEYWORD_IDENTIFIER

      See Also:
        Constant Field Values

    - #### KEYWORD_KEYWORDS

          protected static final java.lang.String KEYWORD_KEYWORDS

      See Also:
        Constant Field Values

    - #### KEYWORD_LANGUAGE

          protected static final java.lang.String KEYWORD_LANGUAGE

      See Also:
        Constant Field Values

    - #### KEYWORD_LAST_MODIFIED_BY

          protected static final java.lang.String KEYWORD_LAST_MODIFIED_BY

      See Also:
        Constant Field Values

    - #### KEYWORD_LAST_PRINTED

          protected static final java.lang.String KEYWORD_LAST_PRINTED

      See Also:
        Constant Field Values

    - #### KEYWORD_MODIFIED

          protected static final java.lang.String KEYWORD_MODIFIED

      See Also:
        Constant Field Values

    - #### KEYWORD_REVISION

          protected static final java.lang.String KEYWORD_REVISION

      See Also:
        Constant Field Values

    - #### KEYWORD_SUBJECT

          protected static final java.lang.String KEYWORD_SUBJECT

      See Also:
        Constant Field Values

    - #### KEYWORD_TITLE

          protected static final java.lang.String KEYWORD_TITLE

      See Also:
        Constant Field Values

    - #### KEYWORD_VERSION

          protected static final java.lang.String KEYWORD_VERSION

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### PackagePropertiesUnmarshaller

          public PackagePropertiesUnmarshaller()

  - ### Method Detail

    - #### unmarshall

          public PackagePart unmarshall(UnmarshallContext context,
                                        java.io.InputStream in)
                                 throws InvalidFormatException,
                                        java.io.IOException

      Description copied from interface: `PartUnmarshaller`
      Save the content of the package in the stream
      Specified by:
        `unmarshall` in interface `PartUnmarshaller`
        `in` - The input stream from which the part will be read.
      Returns:
        The part freshly read from the input stream.
      Throws:
        `InvalidFormatException` - If the data can not be interpreted correctly
        `java.io.IOException` - if reading from the stream fails

    - #### checkElementForOPCCompliance

          public void checkElementForOPCCompliance(org.w3c.dom.Element el)
                                            throws InvalidFormatException

      Check the element for the following OPC compliance rules:

      Rule M4.2: A format consumer shall consider the use of the Markup Compatibility namespace to be an error.

      Rule M4.3: Producers shall not create a document element that contains refinements to the Dublin Core elements, except for the two specified in the schema: and Consumers shall consider a document element that violates this constraint to be an error.

      Rule M4.4: Producers shall not create a document element that contains the xml:lang attribute. Consumers shall consider a document element that violates this constraint to be an error.

      Rule M4.5: Producers shall not create a document element that contains the xsi:type attribute, except for a or element where the xsi:type attribute shall be present and shall hold the value dcterms:W3CDTF, where dcterms is the namespace prefix of the Dublin Core namespace. Consumers shall consider a document element that violates this constraint to be an error.

      Throws:
        `InvalidFormatException`

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.