<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.podi.org/ppml/ppml210.xsd" xmlns:ppml="http://www.podi.org/ppml/ppml210.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="PPML" type="ppml:PPML"/>
  <xs:complexType name="PPML">
    <xs:sequence>
      <xs:element name="CONFORMANCE" type="ppml:CONFORMANCE" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="TICKET" type="ppml:TICKET" minOccurs="0"/>
      <xs:element name="SUPPLIED_RESOURCES" type="ppml:SUPPLIED_RESOURCES" minOccurs="0"/>
      <xs:element name="REQUIRED_RESOURCES" type="ppml:REQUIRED_RESOURCES" minOccurs="0"/>
      <xs:element name="IMPOSITION" type="ppml:IMPOSITION" minOccurs="0" maxOccurs="unbounded"/>
      <xs:choice minOccurs="0">
        <xs:element name="PRINT_LAYOUT" type="ppml:PRINT_LAYOUT"/>
        <xs:element name="PAGE_DESIGN" type="ppml:PAGE_DESIGN"/>
      </xs:choice>
      <xs:element name="PRIVATE_INFO" type="ppml:PRIVATE_INFO" minOccurs="0" maxOccurs="unbounded"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="TICKET_SET" type="ppml:TICKET_SET"/>
        <xs:element name="TICKET_REF" type="ppml:TICKET_REF"/>
        <xs:element name="REUSABLE_OBJECT" type="ppml:REUSABLE_OBJECT"/>
        <xs:element name="SEGMENT_ARRAY" type="ppml:SEGMENT_ARRAY"/>
        <xs:choice>
          <xs:element name="DOCUMENT_SET" type="ppml:DOCUMENT_SET"/>
          <xs:element name="JOB" type="ppml:DOCUMENT_SET"/>
        </xs:choice>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Label" type="xs:string"/>
    <xs:attribute name="Creator" type="xs:string"/>
    <xs:attribute name="CreationDate" type="xs:dateTime"/>
    <xs:attribute name="ResourcesIncluded" type="ppml:Boolean" default="No"/>
    <xs:attribute name="SheetLayoutIncluded" type="ppml:Boolean" default="No"/>
  </xs:complexType>
  <xs:complexType name="DOCUMENT_SET">
    <xs:sequence>
      <xs:element name="SUPPLIED_RESOURCES" type="ppml:SUPPLIED_RESOURCES" minOccurs="0"/>
      <xs:element name="REQUIRED_RESOURCES" type="ppml:REQUIRED_RESOURCES" minOccurs="0"/>
      <xs:element name="IMPOSITION" type="ppml:IMPOSITION" minOccurs="0" maxOccurs="unbounded"/>
      <xs:choice minOccurs="0">
        <xs:element name="PRINT_LAYOUT" type="ppml:PRINT_LAYOUT"/>
        <xs:element name="PAGE_DESIGN" type="ppml:PAGE_DESIGN"/>
      </xs:choice>
      <xs:element name="PRIVATE_INFO" type="ppml:PRIVATE_INFO" minOccurs="0" maxOccurs="unbounded"/>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="TICKET_SET" type="ppml:TICKET_SET"/>
        <xs:element name="TICKET_REF" type="ppml:TICKET_REF"/>
        <xs:element name="REUSABLE_OBJECT" type="ppml:REUSABLE_OBJECT"/>
        <xs:element name="SEGMENT_ARRAY" type="ppml:SEGMENT_ARRAY"/>
        <xs:element name="DOCUMENT" type="ppml:DOCUMENT"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Label" type="xs:string"/>
    <xs:attribute name="DocumentCount" type="xs:integer"/>
  </xs:complexType>
  <xs:complexType name="DOCUMENT">
    <xs:sequence>
      <xs:element name="SUPPLIED_RESOURCES" type="ppml:SUPPLIED_RESOURCES" minOccurs="0"/>
      <xs:element name="REQUIRED_RESOURCES" type="ppml:REQUIRED_RESOURCES" minOccurs="0"/>
      <xs:element name="PAGE_DESIGN" type="ppml:PAGE_DESIGN" minOccurs="0"/>
      <xs:element name="PRIVATE_INFO" type="ppml:PRIVATE_INFO" minOccurs="0" maxOccurs="unbounded"/>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="TICKET_SET" type="ppml:TICKET_SET"/>
        <xs:element name="TICKET_REF" type="ppml:TICKET_REF"/>
        <xs:element name="REUSABLE_OBJECT" type="ppml:REUSABLE_OBJECT"/>
        <xs:element name="SEGMENT_ARRAY" type="ppml:SEGMENT_ARRAY"/>
        <xs:element name="PAGE" type="ppml:PAGE"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Label" type="xs:string"/>
    <xs:attribute name="Dimensions" type="ppml:Number2"/>
    <xs:attribute name="PageCount" type="xs:nonNegativeInteger"/>
    <xs:attribute name="DocumentCopies" type="xs:nonNegativeInteger" default="1"/>
  </xs:complexType>
  <xs:complexType name="PAGE">
    <xs:sequence>
      <xs:element name="SUPPLIED_RESOURCES" type="ppml:SUPPLIED_RESOURCES" minOccurs="0"/>
      <xs:element name="REQUIRED_RESOURCES" type="ppml:REQUIRED_RESOURCES" minOccurs="0"/>
      <xs:element name="PAGE_DESIGN" type="ppml:PAGE_DESIGN" minOccurs="0"/>
      <xs:element name="PRIVATE_INFO" type="ppml:PRIVATE_INFO" minOccurs="0" maxOccurs="unbounded"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="TICKET_SET" type="ppml:TICKET_SET"/>
        <xs:element name="TICKET_REF" type="ppml:TICKET_REF"/>
        <xs:element name="REUSABLE_OBJECT" type="ppml:REUSABLE_OBJECT"/>
        <xs:element name="SEGMENT_ARRAY" type="ppml:SEGMENT_ARRAY"/>
        <xs:element name="MARK" type="ppml:MARK"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Label" type="xs:string"/>
    <xs:attribute name="Dimensions" type="ppml:Number2"/>
  </xs:complexType>
  <xs:complexType name="PAGE_DESIGN">
    <xs:attribute name="TrimBox" type="ppml:Number4" use="required"/>
    <xs:attribute name="BleedBox" type="ppml:Number4"/>
  </xs:complexType>
  <xs:complexType name="CONFORMANCE">
    <xs:attribute name="Subset" type="xs:string" use="required"/>
    <xs:attribute name="Level" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="TICKET">
    <xs:choice>
      <xs:element name="INTERNAL_DATA" type="ppml:INTERNAL_DATA"/>
      <xs:element name="EXTERNAL_DATA" type="ppml:EXTERNAL_DATA"/>
    </xs:choice>
    <xs:attribute name="Format" type="xs:string" use="required"/>
  </xs:complexType>
  <xs:complexType name="TICKET_REF">
    <xs:attribute name="ExtIDRef" type="xs:NMTOKEN"/>
    <xs:attribute name="Ref" type="xs:IDREF"/>
  </xs:complexType>
  <xs:complexType name="TICKET_SET">
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="TICKET_REF" type="ppml:TICKET_REF"/>
    </xs:sequence>
    <xs:attribute name="ID" type="xs:ID" use="required"/>
  </xs:complexType>
  <xs:complexType name="TICKET_STATE">
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="TICKET_REF" type="ppml:TICKET_REF"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="MARK">
    <xs:sequence>
      <xs:element name="TICKET_SET" type="ppml:TICKET_SET" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="TICKET_REF" type="ppml:TICKET_REF" minOccurs="0" maxOccurs="unbounded"/>
      <xs:choice>
        <xs:sequence>
          <xs:element name="VIEW" type="ppml:VIEW" minOccurs="0"/>
          <xs:element name="OBJECT" type="ppml:OBJECT" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:element name="OCCURRENCE_REF" type="ppml:OCCURRENCE_REF"/>
        <xs:element name="SEGMENT_REF" type="ppml:SEGMENT_REF"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Position" type="ppml:Number2" use="required"/>
  </xs:complexType>
  <xs:complexType name="VIEW">
    <xs:sequence>
      <xs:element name="TRANSFORM" type="ppml:TRANSFORM" minOccurs="0"/>
      <xs:element name="CLIP_RECT" type="ppml:CLIP_RECT" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TRANSFORM">
    <xs:attribute name="Matrix" type="ppml:Number6" use="required"/>
  </xs:complexType>
  <xs:complexType name="CLIP_RECT">
    <xs:attribute name="Rectangle" type="ppml:Number4" use="required"/>
  </xs:complexType>
  <xs:complexType name="OBJECT">
    <xs:sequence>
      <xs:element name="SOURCE" type="ppml:SOURCE"/>
      <xs:element name="VIEW" type="ppml:VIEW" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="Position" type="ppml:Number2" use="required"/>
  </xs:complexType>
  <xs:complexType name="SOURCE">
    <xs:choice>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="INTERNAL_DATA" type="ppml:INTERNAL_DATA"/>
        <xs:element name="EXTERNAL_DATA" type="ppml:EXTERNAL_DATA"/>
      </xs:choice>
      <xs:element name="EXTERNAL_DATA_ARRAY" type="ppml:EXTERNAL_DATA_ARRAY"/>
    </xs:choice>
    <xs:attribute name="Format" type="xs:string" use="required"/>
    <xs:attribute name="Dimensions" type="ppml:Number2" use="required"/>
    <xs:attribute name="ClippingBox" type="ppml:Number4"/>
  </xs:complexType>
  <xs:complexType name="EXTERNAL_DATA">
    <xs:attribute name="Src" type="xs:anyURI" use="required"/>
    <xs:attribute name="Checksum" type="xs:string"/>
    <xs:attribute name="ChecksumType" type="xs:string" default="MD5"/>
    <xs:attribute name="SourceUsage" default="Unknown">
      <xs:simpleType>
        <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="Single"/>
          <xs:enumeration value="Multiple"/>
          <xs:enumeration value="Unknown"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="EXTERNAL_DATA_ARRAY">
    <xs:attribute name="Src" type="xs:anyURI" use="required"/>
    <xs:attribute name="Checksum" type="xs:string"/>
    <xs:attribute name="ChecksumType" type="xs:string" default="MD5"/>
    <xs:attribute name="Index" type="xs:positiveInteger" default="1"/>
    <xs:attribute name="IndexUsage" default="Unknown">
      <xs:simpleType>
        <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="Single"/>
          <xs:enumeration value="Multiple"/>
          <xs:enumeration value="Unknown"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="INTERNAL_DATA" mixed="true">
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:any namespace="##other"/>
    </xs:sequence>
    <xs:attribute name="Encoding" type="xs:string" use="optional"/>
    <xs:attribute name="CharacterSet" type="xs:string" use="optional"/>
    <xs:attribute name="Label" type="xs:string" use="optional"/>
    <xs:attribute name="Creator" type="xs:string" use="optional"/>
  </xs:complexType>
  <xs:complexType name="REUSABLE_OBJECT">
    <xs:sequence>
      <xs:element name="TICKET_SET" type="ppml:TICKET_SET" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="TICKET_REF" type="ppml:TICKET_REF" minOccurs="0" maxOccurs="unbounded"/>
      <xs:sequence>
        <xs:element name="OBJECT" type="ppml:OBJECT" maxOccurs="unbounded"/>
        <xs:element name="VIEW" type="ppml:VIEW" minOccurs="0"/>
        <xs:element name="OCCURRENCE_LIST" type="ppml:OCCURRENCE_LIST"/>
      </xs:sequence>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OCCURRENCE_LIST">
    <xs:sequence maxOccurs="unbounded">
      <xs:element name="TICKET_SET" type="ppml:TICKET_SET" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="TICKET_REF" type="ppml:TICKET_REF" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="OCCURRENCE" type="ppml:OCCURRENCE"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OCCURRENCE">
    <xs:sequence>
      <xs:element name="VIEW" type="ppml:VIEW" minOccurs="0"/>
      <xs:element name="TICKET_STATE" type="ppml:TICKET_STATE" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Name" type="xs:string" use="required"/>
    <xs:attribute name="Environment" type="xs:string" use="optional"/>
    <xs:attribute name="Scope" type="ppml:Scope" use="optional"/>
    <xs:attribute name="Overwrite" type="ppml:Boolean" default="No"/>
    <xs:attribute name="Weight" type="ppml:Weight" use="optional"/>
  </xs:complexType>
  <xs:complexType name="OCCURRENCE_REF">
    <xs:attribute name="Ref" type="xs:string" use="required"/>
    <xs:attribute name="Environment" type="xs:string" use="optional"/>
  </xs:complexType>
  <xs:complexType name="SEGMENT_ARRAY">
    <xs:sequence>
      <xs:element name="VIEW" type="ppml:VIEW" minOccurs="0"/>
      <xs:choice minOccurs="0">
        <xs:element name="EXTERNAL_DATA" type="ppml:EXTERNAL_DATA"/>
        <xs:element name="INTERNAL_DATA" type="ppml:INTERNAL_DATA"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="ClippingBox" type="ppml:Number4" use="optional"/>
    <xs:attribute name="Dimensions" type="ppml:Number2" use="required"/>
    <xs:attribute name="Environment" type="xs:string" use="optional"/>
    <xs:attribute name="Format" type="xs:string" use="required"/>
    <xs:attribute name="IndexRange" type="xs:string" use="required"/>
    <xs:attribute name="Name" type="xs:string" use="required"/>
    <xs:attribute name="Overwrite" type="ppml:Boolean" use="optional" default="No"/>
    <xs:attribute name="Scope" type="ppml:Scope" use="optional"/>
    <xs:attribute name="Src" type="xs:anyURI" use="required"/>
    <xs:attribute name="Checksum" type="xs:string"/>
    <xs:attribute name="ChecksumType" type="xs:string" default="MD5"/>
    <xs:attribute name="Weight" type="ppml:Weight" use="optional"/>
  </xs:complexType>
  <xs:complexType name="SEGMENT_REF">
    <xs:attribute name="Environment" type="xs:string"/>
    <xs:attribute name="Index" type="xs:positiveInteger" use="optional" default="1"/>
    <xs:attribute name="Ref" type="xs:string" use="required"/>
  </xs:complexType>
  <xs:complexType name="PRINT_LAYOUT">
    <xs:sequence>
      <xs:element name="PAGE_LAYOUT" type="ppml:PAGE_LAYOUT"/>
      <xs:element name="SHEET_LAYOUT" type="ppml:SHEET_LAYOUT" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="Ncopies" type="xs:nonNegativeInteger" use="optional" default="1"/>
    <xs:attribute name="Collate" use="optional" default="Document">
      <xs:simpleType>
        <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="Document"/>
          <xs:enumeration value="Job"/>
          <xs:enumeration value="DocSet"/>
          <xs:enumeration value="No"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="PAGE_LAYOUT">
    <xs:attribute name="TrimBox" type="ppml:Number4" use="required"/>
    <xs:attribute name="BleedBox" type="ppml:Number4" use="optional"/>
    <xs:attribute name="BoundingBox" type="ppml:Number4" use="optional"/>
  </xs:complexType>
  <xs:complexType name="SHEET_LAYOUT">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="SHEET_MARK" type="ppml:SHEET_MARK"/>
      <xs:sequence>
        <xs:element name="PAGE_LAYOUT" type="ppml:PAGE_LAYOUT" minOccurs="0"/>
        <xs:choice>
          <xs:element name="IMPOSITION" type="ppml:IMPOSITION"/>
          <xs:element name="IMPOSITION_REF" type="ppml:IMPOSITION_REF"/>
        </xs:choice>
      </xs:sequence>
    </xs:choice>
    <xs:attribute name="Hsize" type="xs:decimal" use="required"/>
    <xs:attribute name="Vsize" type="xs:decimal" use="required"/>
    <xs:attribute name="GangDocuments" type="ppml:Boolean" use="optional" default="No"/>
  </xs:complexType>
  <xs:complexType name="SHEET_MARK">
    <xs:sequence>
      <xs:element name="OCCURRENCE_REF" type="ppml:OCCURRENCE_REF"/>
    </xs:sequence>
    <xs:attribute name="Position" type="ppml:Number2" use="required"/>
    <xs:attribute name="Face" type="ppml:Face" use="optional" default="Up"/>
  </xs:complexType>
  <xs:complexType name="IMPOSITION">
    <xs:choice>
      <xs:element name="SIGNATURE" type="ppml:SIGNATURE"/>
      <xs:element name="REPEAT" type="ppml:REPEAT"/>
    </xs:choice>
    <xs:attribute name="Name" type="xs:string" use="optional"/>
    <xs:attribute name="Environment" type="xs:string" use="optional"/>
    <xs:attribute name="Scope" type="ppml:Scope" use="optional"/>
    <xs:attribute name="Rotation" type="ppml:Rotation" use="optional" default="0"/>
    <xs:attribute name="Position" type="ppml:Number2" use="optional"/>
  </xs:complexType>
  <xs:complexType name="IMPOSITION_REF">
    <xs:attribute name="Name" type="xs:string" use="required"/>
    <xs:attribute name="Environment" type="xs:string" use="optional"/>
    <xs:attribute name="Rotation" type="ppml:Rotation" use="optional" default="0"/>
    <xs:attribute name="Position" type="ppml:Number2" use="optional"/>
  </xs:complexType>
  <xs:complexType name="SIGNATURE">
    <xs:sequence>
      <xs:element name="CELL" type="ppml:CELL" maxOccurs="unbounded"/>
      <xs:element name="HOR_TRIM_MARKS" type="ppml:HOR_TRIM_MARKS" minOccurs="0"/>
      <xs:element name="VER_TRIM_MARKS" type="ppml:VER_TRIM_MARKS" minOccurs="0"/>
      <xs:element name="HOR_GUTTER" type="ppml:HOR_GUTTER" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="VER_GUTTER" type="ppml:VER_GUTTER" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="HOR_FOLD_MARKS" type="ppml:HOR_FOLD_MARKS" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="VER_FOLD_MARKS" type="ppml:VER_FOLD_MARKS" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Nrows" type="xs:positiveInteger" use="required"/>
    <xs:attribute name="Ncols" type="xs:positiveInteger" use="required"/>
    <xs:attribute name="PageCount" type="xs:positiveInteger" use="optional"/>
  </xs:complexType>
  <xs:complexType name="CELL">
    <xs:attribute name="Row" type="xs:positiveInteger" use="required"/>
    <xs:attribute name="Col" type="xs:positiveInteger" use="required"/>
    <xs:attribute name="Face" type="ppml:Face" use="optional" default="Up"/>
    <xs:attribute name="PageOrder" type="xs:string" use="required"/>
    <xs:attribute name="Rotation" type="ppml:Rotation" use="optional" default="0"/>
  </xs:complexType>
  <xs:complexType name="HOR_TRIM_MARKS">
    <xs:sequence>
      <xs:element name="OCCURRENCE_REF" type="ppml:OCCURRENCE_REF"/>
    </xs:sequence>
    <xs:attribute name="MarkDist" type="xs:decimal" use="optional"/>
    <xs:attribute name="AllowOnPage" type="ppml:Boolean" use="optional" default="No"/>
  </xs:complexType>
  <xs:complexType name="VER_TRIM_MARKS">
    <xs:sequence>
      <xs:element name="OCCURRENCE_REF" type="ppml:OCCURRENCE_REF"/>
    </xs:sequence>
    <xs:attribute name="MarkDist" type="xs:decimal" use="optional"/>
    <xs:attribute name="AllowOnPage" type="ppml:Boolean" use="optional" default="No"/>
  </xs:complexType>
  <xs:complexType name="HOR_GUTTER">
    <xs:attribute name="BetweenRows" type="ppml:Integer2" use="required"/>
    <xs:attribute name="Distance" type="xs:decimal" use="required"/>
  </xs:complexType>
  <xs:complexType name="VER_GUTTER">
    <xs:attribute name="BetweenCols" type="ppml:Integer2" use="required"/>
    <xs:attribute name="Distance" type="xs:decimal" use="required"/>
  </xs:complexType>
  <xs:complexType name="HOR_FOLD_MARKS">
    <xs:sequence>
      <xs:element name="OCCURRENCE_REF" type="ppml:OCCURRENCE_REF"/>
    </xs:sequence>
    <xs:attribute name="BetweenRows" type="ppml:Integer2" use="required"/>
    <xs:attribute name="MarkDist" type="xs:decimal" use="optional"/>
  </xs:complexType>
  <xs:complexType name="VER_FOLD_MARKS">
    <xs:sequence>
      <xs:element name="OCCURRENCE_REF" type="ppml:OCCURRENCE_REF"/>
    </xs:sequence>
    <xs:attribute name="BetweenCols" type="ppml:Integer2" use="required"/>
    <xs:attribute name="MarkDist" type="xs:decimal" use="optional"/>
  </xs:complexType>
  <xs:complexType name="REPEAT">
    <xs:choice>
      <xs:element name="REPEAT" type="ppml:REPEAT"/>
      <xs:element name="SIGNATURE" type="ppml:SIGNATURE"/>
    </xs:choice>
    <xs:attribute name="Direction" type="ppml:Direction" use="required"/>
    <xs:attribute name="Action" type="ppml:Action" use="required"/>
    <xs:attribute name="Order" type="ppml:Order" use="optional" default="Ascending"/>
    <xs:attribute name="Count" type="xs:positiveInteger" use="required"/>
    <xs:attribute name="Spacing" type="xs:decimal" use="optional" default="0.0"/>
    <xs:attribute name="SpacingMethod" type="ppml:SpacingMethod" use="optional"/>
  </xs:complexType>
  <xs:complexType name="PRIVATE_INFO" mixed="true">
    <xs:attribute name="Creator" type="xs:string" use="required"/>
    <xs:attribute name="Identifier" type="xs:string" use="optional"/>
    <xs:attribute name="Encoding" type="xs:string" use="optional"/>
    <xs:attribute name="CharacterSet" type="xs:string" use="optional"/>
  </xs:complexType>
  <xs:complexType name="REQUIRED_RESOURCES">
    <xs:sequence>
      <xs:element name="FONT" type="ppml:FONT" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="EXTERNAL_DATA" type="ppml:EXTERNAL_DATA" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="PROCESSOR" type="ppml:PROCESSOR" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="SUPPLIED_RESOURCE_REF" type="ppml:SUPPLIED_RESOURCE_REF" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="FONT">
    <xs:attribute name="FontName" type="xs:string" use="required"/>
    <xs:attribute name="Format" type="xs:string" use="required"/>
  </xs:complexType>
  <xs:complexType name="PROCESSOR">
    <xs:attribute name="Format" type="xs:string" use="required"/>
    <xs:attribute name="Revision" type="xs:string" use="optional"/>
  </xs:complexType>
  <xs:complexType name="SUPPLIED_RESOURCES">
    <xs:sequence maxOccurs="unbounded">
      <xs:element name="SUPPLIED_RESOURCE" type="ppml:SUPPLIED_RESOURCE"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SUPPLIED_RESOURCE">
    <xs:choice minOccurs="0">
      <xs:element name="INTERNAL_DATA" type="ppml:INTERNAL_DATA"/>
      <xs:element name="EXTERNAL_DATA" type="ppml:EXTERNAL_DATA"/>
    </xs:choice>
    <xs:attribute name="Name" type="xs:string" use="required"/>
    <xs:attribute name="ResourceName" type="xs:string" use="required"/>
    <xs:attribute name="Src" type="xs:anyURI" use="optional"/>
    <xs:attribute name="Format" type="xs:string" use="required"/>
    <xs:attribute name="Type" type="xs:string" use="required"/>
    <xs:attribute name="SubType" type="xs:string" use="optional"/>
    <xs:attribute name="Scope" type="ppml:Scope" use="optional"/>
  </xs:complexType>
  <xs:complexType name="SUPPLIED_RESOURCE_REF">
    <xs:attribute name="Name" type="xs:string" use="required"/>
  </xs:complexType>
  <!-- types defined for attribute values -->
  <xs:simpleType name="IntegerN">
    <xs:list itemType="xs:decimal"/>
  </xs:simpleType>
  <xs:simpleType name="Integer2">
    <xs:restriction base="ppml:IntegerN">
      <xs:length value="2" fixed="true"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="NumberN">
    <xs:list itemType="xs:decimal"/>
  </xs:simpleType>
  <xs:simpleType name="Number2">
    <xs:restriction base="ppml:NumberN">
      <xs:length value="2" fixed="true"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Number4">
    <xs:restriction base="ppml:NumberN">
      <xs:length value="4" fixed="true"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Number6">
    <xs:restriction base="ppml:NumberN">
      <xs:length value="6" fixed="true"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Scope">
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Global"/>
      <xs:enumeration value="PPML"/>
      <xs:enumeration value="Job"/>
      <xs:enumeration value="DocSet"/>
      <xs:enumeration value="Document"/>
      <xs:enumeration value="Page"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Weight">
    <xs:restriction base="xs:decimal">
      <xs:minInclusive value="1.0"/>
      <xs:maxInclusive value="100.0"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Rotation">
    <xs:restriction base="xs:integer">
      <xs:enumeration value="0"/>
      <xs:enumeration value="90"/>
      <xs:enumeration value="180"/>
      <xs:enumeration value="270"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Face">
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Up"/>
      <xs:enumeration value="Dn"/>
      <xs:enumeration value="Down"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Boolean">
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Yes"/>
      <xs:enumeration value="No"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Direction">
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Ver"/>
      <xs:enumeration value="Hor"/>
      <xs:enumeration value="Stack"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Action">
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Duplicate"/>
      <xs:enumeration value="Increment"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Order">
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Ascending"/>
      <xs:enumeration value="Descending"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="SpacingMethod">
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Gap"/>
      <xs:enumeration value="Offset"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
