<x:schema xmlns:x="http://www.w3.org/2001/XMLSchema">

     <x:simpleType name="IDENTIFIER">

          <x:restriction base="x:NCName">

               <x:pattern value="\w(\w|\d)*"/>

          </x:restriction>

     </x:simpleType>

     <x:simpleType name="SimpleName">

          <x:restriction base="IDENTIFIER"/>

     </x:simpleType>

     <x:simpleType name="NodeList">

          <x:restriction base="x:string">

               <x:pattern value="( |\t)*(\w(\w|\d)*)( |\t)*(,( |\t)*(\w(\w|\d)*)( |\t)*)*"/>

          </x:restriction>

     </x:simpleType>

     <x:simpleType name="IdentifierList">

          <x:restriction base="NodeList"/>

     </x:simpleType>

     <x:element name="Lattice" type="Lattice"/>

     <x:complexType name="Lattice">

          <x:sequence>

               <x:element name="SecurityLabels" type="NodeList"/>

               <x:element name="Ordering" type="EdgeLists"/>

               <x:element name="ClearanceList" type="ClearanceLists"/>

          </x:sequence>

          <x:attribute name="name" type="SimpleName"/>

     </x:complexType>

     <x:complexType name="EdgeLists">

          <x:sequence>

               <x:element name="Order" type="NodeList" maxOccurs="unbounded"/>

          </x:sequence>

     </x:complexType>

     <x:complexType name="ClearanceLists">

          <x:sequence>

               <x:element name="Clearance" type="ClearanceList" maxOccurs="unbounded"/>

          </x:sequence>

     </x:complexType>

     <x:complexType name="ClearanceList">

          <x:attribute name="names" type="IdentifierList"/>

          <x:attribute name="labels" type="NodeList"/>

     </x:complexType>

</x:schema>