<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="PLMXML">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Header"/>
        <xs:element maxOccurs="unbounded" ref="Product"/>
        <xs:element maxOccurs="unbounded" ref="ProductRevision"/>
        <xs:element maxOccurs="unbounded" ref="form"/>
      </xs:sequence>
      <xs:attribute name="schemaVersion" use="required" type="xs:decimal"/>
      <xs:attribute name="xmlns2" use="required" type="xs:anyURI"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="Header">
    <xs:complexType>
      <xs:attribute name="id" use="required" type="xs:integer"/>
      <xs:attribute name="transferContext" use="required"/>
      <xs:attribute name="traverseRootRefs" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="Product">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="ProductList"/>
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:integer"/>
      <xs:attribute name="name" use="required"/>
      <xs:attribute name="subtype" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="ProductList">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Description"/>
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:integer"/>
      <xs:attribute name="name" use="required"/>
      <xs:attribute name="productid" use="required"/>
      <xs:attribute name="subtype" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="Description">
    <xs:complexType/>
  </xs:element>
  <xs:element name="ProductRevision">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="AssociatedForm"/>
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:integer"/>
      <xs:attribute name="masterRef" use="required"/>
      <xs:attribute name="name" use="required"/>
      <xs:attribute name="revision" use="required"/>
      <xs:attribute name="subType" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="AssociatedForm">
    <xs:complexType>
      <xs:attribute name="formRef" use="required"/>
      <xs:attribute name="id" use="required" type="xs:integer"/>
      <xs:attribute name="role" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="form">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="UserData"/>
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:integer"/>
      <xs:attribute name="name" use="required"/>
      <xs:attribute name="subClass" use="required" type="xs:NCName"/>
      <xs:attribute name="subType" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="UserData">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="UserValue"/>
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:integer"/>
      <xs:attribute name="type" use="required" type="xs:NCName"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="UserValue">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="UserList"/>
      </xs:sequence>
      <xs:attribute name="title" use="required"/>
      <xs:attribute name="value" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="UserList">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="Item"/>
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:integer"/>
      <xs:attribute name="type" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="Item">
    <xs:complexType>
      <xs:attribute name="value" use="required"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
