<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.tei-c.org/ns/1.0" xmlns:ns1="http://www.tei-c.org/ns/1.0">
  <!--
    Schema generated from ODD source 2010-11-05T15:38:46Z. 
    Edition: 1.8.0. Last updated on November 5th 2010.
    Edition Location: http://www.tei-c.org/Vault/P5/1.8.0/
    
  -->
  <!--
    
    This template file is freely available and you are
    	       hereby authorised to copy, modify, and redistribute it in
    	       any way without further reference or permissions.
    
    When making such modifications, you are strongly
    	       recommended to change the present text to include an
    	       accurate statement of the licencing conditions applicable
    	       to your modified text.
  -->
  <xs:group name="macro.anyXML">
    <xs:choice>
      <xs:any namespace="##other" processContents="skip"/>
      <xs:any namespace="##local" processContents="skip"/>
    </xs:choice>
  </xs:group>
  <xs:group name="model.global.meta">
    <xs:choice>
      <xs:element ref="ns1:fs"/>
      <xs:element ref="ns1:fLib"/>
      <xs:element ref="ns1:fvLib"/>
    </xs:choice>
  </xs:group>
  <xs:group name="model.global.meta_alternation">
    <xs:choice>
      <xs:element ref="ns1:fs"/>
      <xs:element ref="ns1:fLib"/>
      <xs:element ref="ns1:fvLib"/>
    </xs:choice>
  </xs:group>
  <xs:group name="model.global.meta_sequence">
    <xs:sequence>
      <xs:element ref="ns1:fs"/>
      <xs:element ref="ns1:fLib"/>
      <xs:element ref="ns1:fvLib"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="model.global.meta_sequenceOptional">
    <xs:sequence>
      <xs:element minOccurs="0" ref="ns1:fs"/>
      <xs:element minOccurs="0" ref="ns1:fLib"/>
      <xs:element minOccurs="0" ref="ns1:fvLib"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="model.global.meta_sequenceOptionalRepeatable">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:fs"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:fLib"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:fvLib"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="model.global.meta_sequenceRepeatable">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" ref="ns1:fs"/>
      <xs:element maxOccurs="unbounded" ref="ns1:fLib"/>
      <xs:element maxOccurs="unbounded" ref="ns1:fvLib"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="model.featureVal.complex">
    <xs:choice>
      <xs:element ref="ns1:fs"/>
      <xs:element ref="ns1:vColl"/>
      <xs:element ref="ns1:vNot"/>
      <xs:element ref="ns1:vMerge"/>
    </xs:choice>
  </xs:group>
  <xs:group name="model.featureVal.complex_alternation">
    <xs:choice>
      <xs:element ref="ns1:fs"/>
      <xs:element ref="ns1:vColl"/>
      <xs:element ref="ns1:vNot"/>
      <xs:element ref="ns1:vMerge"/>
    </xs:choice>
  </xs:group>
  <xs:group name="model.featureVal.complex_sequence">
    <xs:sequence>
      <xs:element ref="ns1:fs"/>
      <xs:element ref="ns1:vColl"/>
      <xs:element ref="ns1:vNot"/>
      <xs:element ref="ns1:vMerge"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="model.featureVal.complex_sequenceOptional">
    <xs:sequence>
      <xs:element minOccurs="0" ref="ns1:fs"/>
      <xs:element minOccurs="0" ref="ns1:vColl"/>
      <xs:element minOccurs="0" ref="ns1:vNot"/>
      <xs:element minOccurs="0" ref="ns1:vMerge"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="model.featureVal.complex_sequenceOptionalRepeatable">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:fs"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:vColl"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:vNot"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:vMerge"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="model.featureVal.complex_sequenceRepeatable">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" ref="ns1:fs"/>
      <xs:element maxOccurs="unbounded" ref="ns1:vColl"/>
      <xs:element maxOccurs="unbounded" ref="ns1:vNot"/>
      <xs:element maxOccurs="unbounded" ref="ns1:vMerge"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="model.featureVal.single">
    <xs:choice>
      <xs:element ref="ns1:binary"/>
      <xs:element ref="ns1:symbol"/>
      <xs:element ref="ns1:numeric"/>
      <xs:element ref="ns1:string"/>
      <xs:element ref="ns1:vLabel"/>
      <xs:element ref="ns1:default"/>
      <xs:element ref="ns1:vAlt"/>
    </xs:choice>
  </xs:group>
  <xs:group name="model.featureVal.single_alternation">
    <xs:choice>
      <xs:element ref="ns1:binary"/>
      <xs:element ref="ns1:symbol"/>
      <xs:element ref="ns1:numeric"/>
      <xs:element ref="ns1:string"/>
      <xs:element ref="ns1:vLabel"/>
      <xs:element ref="ns1:default"/>
      <xs:element ref="ns1:vAlt"/>
    </xs:choice>
  </xs:group>
  <xs:group name="model.featureVal.single_sequence">
    <xs:sequence>
      <xs:element ref="ns1:binary"/>
      <xs:element ref="ns1:symbol"/>
      <xs:element ref="ns1:numeric"/>
      <xs:element ref="ns1:string"/>
      <xs:element ref="ns1:vLabel"/>
      <xs:element ref="ns1:default"/>
      <xs:element ref="ns1:vAlt"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="model.featureVal.single_sequenceOptional">
    <xs:sequence>
      <xs:element minOccurs="0" ref="ns1:binary"/>
      <xs:element minOccurs="0" ref="ns1:symbol"/>
      <xs:element minOccurs="0" ref="ns1:numeric"/>
      <xs:element minOccurs="0" ref="ns1:string"/>
      <xs:element minOccurs="0" ref="ns1:vLabel"/>
      <xs:element minOccurs="0" ref="ns1:default"/>
      <xs:element minOccurs="0" ref="ns1:vAlt"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="model.featureVal.single_sequenceOptionalRepeatable">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:binary"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:symbol"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:numeric"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:string"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:vLabel"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:default"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:vAlt"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="model.featureVal.single_sequenceRepeatable">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" ref="ns1:binary"/>
      <xs:element maxOccurs="unbounded" ref="ns1:symbol"/>
      <xs:element maxOccurs="unbounded" ref="ns1:numeric"/>
      <xs:element maxOccurs="unbounded" ref="ns1:string"/>
      <xs:element maxOccurs="unbounded" ref="ns1:vLabel"/>
      <xs:element maxOccurs="unbounded" ref="ns1:default"/>
      <xs:element maxOccurs="unbounded" ref="ns1:vAlt"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="model.featureVal">
    <xs:choice>
      <xs:group ref="ns1:model.featureVal.complex"/>
      <xs:group ref="ns1:model.featureVal.single"/>
    </xs:choice>
  </xs:group>
  <xs:element name="fsdDecl">
    <xs:annotation>
      <xs:documentation>(feature system declaration) provides a feature system declaration comprising one or more
  feature structure declarations or feature structure declaration links.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <xs:element ref="ns1:fsDecl"/>
        <xs:element ref="ns1:fsdLink"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>
  <xs:element name="fsDecl">
    <xs:annotation>
      <xs:documentation>(feature structure declaration) declares one type of feature structure.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="ns1:fsDescr"/>
        <xs:element maxOccurs="unbounded" ref="ns1:fDecl"/>
        <xs:element minOccurs="0" ref="ns1:fsConstraints"/>
      </xs:sequence>
      <xs:attribute name="type" use="required" type="xs:Name">
        <xs:annotation>
          <xs:documentation>gives a name for the type of feature structure being declared.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="baseTypes">
        <xs:annotation>
          <xs:documentation>gives the name of one or more typed feature structures
	from which this type inherits feature specifications and
	constraints; 	
	if this type includes a feature specification
	with the same name as that of any of those specified by this
	attribute, or if more than one specification of the same name
	is inherited, then the set of possible values is defined by
	unification. Similarly, the set of constraints applicable is
	derived by combining those specified explicitly within this
	element with those implied by the baseTypes
	attribute. When no baseTypes attribute is specified, no
	feature specification or constraint is inherited.
 
      </xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction>
            <xs:simpleType>
              <xs:list>
                <xs:simpleType>
                  <xs:union memberTypes="xs:Name xs:Name"/>
                </xs:simpleType>
              </xs:list>
            </xs:simpleType>
            <xs:minLength value="1"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="fsDescr" type="xs:string">
    <xs:annotation>
      <xs:documentation>(feature system description (in FSD)) describes in prose what is represented by the type of feature
structure declared in the enclosing fsDecl.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="fsdLink">
    <xs:annotation>
      <xs:documentation>(feature structure declaration link) associates the name of a typed feature structure with a feature
structure declaration for it.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name="type" use="required" type="xs:Name">
        <xs:annotation>
          <xs:documentation>identifies the type of feature structure to be documented;
      this will be the value of the type attribute on at least one
feature structure.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="target" use="required" type="xs:anyURI">
        <xs:annotation>
          <xs:documentation>supplies a pointer to a feature structure declaration
      (fsDecl) element within the current document or elsewhere. </xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="fDecl">
    <xs:annotation>
      <xs:documentation>(feature declaration) declares a single feature, specifying its name, organization,
range of allowed values, and optionally its default value.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="ns1:fDescr"/>
        <xs:element ref="ns1:vRange"/>
        <xs:element minOccurs="0" ref="ns1:vDefault"/>
      </xs:sequence>
      <xs:attribute name="name" use="required" type="xs:Name">
        <xs:annotation>
          <xs:documentation>indicates the name of the feature being declared; matches the
name attribute of f elements in the text.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="optional" default="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>indicates whether or not the value of this feature may
	be present.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="fDescr" type="xs:string">
    <xs:annotation>
      <xs:documentation>(feature description (in FSD)) describes in prose what is represented by the feature being
declared and its values.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="vRange">
    <xs:annotation>
      <xs:documentation>(value range) defines the range of allowed values for a feature, in the form of
an fs, vAlt, or primitive value;
for the value of an f to be valid, it must be
subsumed by the specified range; if the f
contains multiple values (as sanctioned by the org attribute),
then each value must be subsumed by the vRange.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group ref="ns1:model.featureVal"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="vDefault">
    <xs:annotation>
      <xs:documentation>(value default) declares the default value to be supplied when a feature structure
does not contain an instance of f for this name; if
unconditional, it is specified as one (or, depending on the value of
the org attribute of the enclosing fDecl) more
fs elements or primitive values;
if conditional, it is specified as
one or more if elements; if no default is specified, or no
condition matches, the value none is assumed.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:choice>
        <xs:group maxOccurs="unbounded" ref="ns1:model.featureVal"/>
        <xs:element maxOccurs="unbounded" ref="ns1:if"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>
  <xs:element name="if">
    <xs:annotation>
      <xs:documentation>defines a conditional default value for a feature; the condition
is specified as a feature structure, and is met if it
subsumes the feature structure in the text for which a
default value is sought.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:choice>
          <xs:element ref="ns1:fs"/>
          <xs:element ref="ns1:f"/>
        </xs:choice>
        <xs:element ref="ns1:then"/>
        <xs:group ref="ns1:model.featureVal"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="then">
    <xs:annotation>
      <xs:documentation>separates the condition from the default in an if, or
the antecedent and the consequent in a cond element.</xs:documentation>
    </xs:annotation>
    <xs:complexType/>
  </xs:element>
  <xs:element name="fsConstraints">
    <xs:annotation>
      <xs:documentation>(feature-structure constraints) specifies constraints on the content of valid feature
structures.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="ns1:cond"/>
        <xs:element ref="ns1:bicond"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>
  <xs:element name="cond">
    <xs:annotation>
      <xs:documentation>(conditional feature-structure constraint) defines a conditional feature-structure constraint; the consequent
and the antecedent are specified as feature structures or
feature-structure collections; the constraint is satisfied if both the
antecedent and the consequent subsume a given feature
structure, or if the antecedent does not.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:choice>
          <xs:element ref="ns1:fs"/>
          <xs:element ref="ns1:f"/>
        </xs:choice>
        <xs:element ref="ns1:then"/>
        <xs:choice>
          <xs:element ref="ns1:fs"/>
          <xs:element ref="ns1:f"/>
        </xs:choice>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="bicond">
    <xs:annotation>
      <xs:documentation>(bi-conditional feature-structure constraint) defines a biconditional feature-structure constraint; both
consequent and antecedent are specified as feature structures or groups
of feature structures; the constraint is satisfied if both
subsume a given feature structure, or if both do not.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:choice>
          <xs:element ref="ns1:fs"/>
          <xs:element ref="ns1:f"/>
        </xs:choice>
        <xs:element ref="ns1:iff"/>
        <xs:choice>
          <xs:element ref="ns1:fs"/>
          <xs:element ref="ns1:f"/>
        </xs:choice>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="iff">
    <xs:annotation>
      <xs:documentation>(if and only if) separates the condition from the consequence in a bicond
element.</xs:documentation>
    </xs:annotation>
    <xs:complexType/>
  </xs:element>
  <xs:element name="fs">
    <xs:annotation>
      <xs:documentation>(feature structure) represents a feature structure, that is, a
  collection of feature-value pairs organized as a
structural unit.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="ns1:f"/>
      </xs:sequence>
      <xs:attribute name="type" type="xs:Name">
        <xs:annotation>
          <xs:documentation>specifies the type of the feature structure.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="feats">
        <xs:annotation>
          <xs:documentation>(features) references the feature-value specifications making up this feature structure.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction>
            <xs:simpleType>
              <xs:list>
                <xs:simpleType>
                  <xs:union memberTypes="xs:anyURI xs:anyURI"/>
                </xs:simpleType>
              </xs:list>
            </xs:simpleType>
            <xs:minLength value="1"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="f">
    <xs:annotation>
      <xs:documentation>(feature) represents a feature value specification, that
  is, the association of a name with a value of any of several different types.</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="ns1:model.featureVal"/>
      <xs:attribute name="name" use="required" type="xs:Name">
        <xs:annotation>
          <xs:documentation>provides a name for the feature.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="fVal" type="xs:anyURI">
        <xs:annotation>
          <xs:documentation>(feature value) references any element which can be used to represent the
  value of a feature.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="binary">
    <xs:annotation>
      <xs:documentation>(binary value) represents the value part of a feature-value specification which can contain either
  of exactly two possible values.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name="value" use="required" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>supplies a binary value.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="symbol">
    <xs:annotation>
      <xs:documentation>(symbolic value) represents the value part of a feature-value specification
  which contains one of a finite list of symbols.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name="value" use="required">
        <xs:annotation>
          <xs:documentation>supplies the symbolic value for the feature, one of a finite list that
may be specified in a feature declaration.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:pattern value="(\p{L}|\p{N}|\p{P}|\p{S})+"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="numeric">
    <xs:annotation>
      <xs:documentation>(numeric value) represents the value part of a feature-value specification
  which contains a numeric value or range.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name="value" use="required">
        <xs:annotation>
          <xs:documentation>supplies a lower bound for the numeric value represented,
      and also (if max is not supplied) its upper bound.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:union memberTypes="xs:double xs:decimal">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:pattern value="(\-?[\d]+/\-?[\d]+)"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max">
        <xs:annotation>
          <xs:documentation>supplies an upper bound for the numeric value represented.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:union memberTypes="xs:double xs:decimal">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:pattern value="(\-?[\d]+/\-?[\d]+)"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="trunc" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>specifies whether the value represented should be
	  truncated to give an integer value.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="string" type="xs:string">
    <xs:annotation>
      <xs:documentation>(string value) represents the value part of a feature-value specification
  which contains a string.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="vLabel">
    <xs:annotation>
      <xs:documentation>(value label) represents the value part of a feature-value specification
  which appears at more than one point in a feature structure.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group minOccurs="0" ref="ns1:model.featureVal"/>
      <xs:attribute name="name" use="required">
        <xs:annotation>
          <xs:documentation>supplies a name for the sharing point.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:pattern value="(\p{L}|\p{N}|\p{P}|\p{S})+"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="vColl">
    <xs:annotation>
      <xs:documentation>(collection of values) represents the value part of a feature-value specification
  which contains multiple values organized as a set, bag, or list.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="ns1:fs"/>
        <xs:group ref="ns1:model.featureVal.single"/>
      </xs:choice>
      <xs:attribute name="org">
        <xs:annotation>
          <xs:documentation>(organization) indicates organization of given value or values as  set, bag or list.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="set">
              <xs:annotation>
                <xs:documentation>indicates that the given values are organized as a set.
   </xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="bag">
              <xs:annotation>
                <xs:documentation>indicates that the given values are organized as a
bag (multiset).
   </xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="list">
              <xs:annotation>
                <xs:documentation>indicates that the given values are organized as a
list.</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="default">
    <xs:annotation>
      <xs:documentation>(default feature value) represents the value part of a feature-value specification
  which contains a defaulted value.</xs:documentation>
    </xs:annotation>
    <xs:complexType/>
  </xs:element>
  <xs:element name="vAlt">
    <xs:annotation>
      <xs:documentation>(value alternation) represents the value part of a feature-value specification
  which contains a set of values, only one of which can be valid.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="ns1:model.featureVal"/>
        <xs:group maxOccurs="unbounded" ref="ns1:model.featureVal"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="vNot">
    <xs:annotation>
      <xs:documentation>(value negation) represents a feature value which is the negation of its content.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group ref="ns1:model.featureVal"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="vMerge">
    <xs:annotation>
      <xs:documentation>(merged collection of values) represents a feature value which is the result of merging
  together the feature values contained by its children, using the organization
  specified by the org attribute.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group maxOccurs="unbounded" ref="ns1:model.featureVal"/>
      <xs:attribute name="org">
        <xs:annotation>
          <xs:documentation>indicates the organization of the resulting merged values as  set, bag or list.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="set">
              <xs:annotation>
                <xs:documentation>indicates that the resulting values are organized as a set.</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="bag">
              <xs:annotation>
                <xs:documentation>indicates that the resulting values are organized as a bag (multiset).
   </xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="list">
              <xs:annotation>
                <xs:documentation>indicates that the resulting values are organized as a list.</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="fLib">
    <xs:annotation>
      <xs:documentation>(feature library) assembles a library of feature elements.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="ns1:f"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="fvLib">
    <xs:annotation>
      <xs:documentation>(feature-value library) assembles a library of reusable feature value elements
  (including complete feature structures).</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="ns1:model.featureVal"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
