www.pudn.com > sxg.rar > XMLSchema.xsd


 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
         
 
         
         
                 
         
         
 
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
        ]> 
 
  
   
    Part 1 version: Id: XMLSchema.xsd,v 1.49 2001/10/25 10:25:41 ht Exp  
    Part 2 version: Id: datatypes.xsd,v 1.53 2001/10/25 10:26:05 ht Exp  
   
  
 
 
  
    
   The schema corresponding to this document is normative, 
   with respect to the syntactic constraints it expresses in the 
   XML Schema language.  The documentation (within <documentation> elements) 
   below, is not normative, but rather highlights important aspects of 
   the W3C Recommendation of which this is a part 
  
 
  
    
   The simpleType element and all of its members are defined 
      towards the end of this schema document 
  
 
  
    
      
       Get access to the xml: attribute groups for xml:lang 
       as declared on 'schema' and 'documentation' below 
      
    
  
 
  
    
      
       This type is extended by almost all schema types 
       to allow attributes from other namespaces to be 
       added to user schemas. 
      
    
    
      
        
      
    
  
 
  
    
      
       This type is extended by all types which allow annotation 
       other than <schema> itself 
      
    
    
      
        
          
        
        
      
    
  
 
  
   
    
   This group is for the 
   elements which occur freely at the top level of schemas. 
   All of their types are based on the "annotated" type by extension. 
   
   
    
    
    
    
   
  
  
  
   
    
   This group is for the 
   elements which can self-redefine (see <redefine> below). 
   
   
    
    
    
    
   
  
 
  
   
    
   A utility type, not for public use 
   
   
    
    
   
  
 
  
   
    
   A utility type, not for public use 
   
   
    
    
   
  
 
  
   
    
   A utility type, not for public use 
    
   #all or (possibly empty) subset of {extension, restriction} 
   
   
        
     
      
     
    
    
     
    
   
  
 
  
   
     
   
   
    
     
      
       
        
        
        
        
       
       
        
        
       
      
      
      
      
      
      
      
      
      
     
    
   
 
   
    
    
   
 
   
    
    
   
 
   
    
    
   
  
   
    
    
   
  
   
    
    
   
  
   
    
    
   
 
   
    
    
   
 
  
 
  
   
   for maxOccurs 
   
    
     
      
     
    
   
  
 
  
   
   for all particles 
   
   
  
 
  
   
   for element, group and attributeGroup, 
   which both define and reference 
   
   
  
 
  
   
     
   'complexType' uses this 
   
    
    
    
    
   
  
  
  
 
  
   
    
    
    
    
    
   
  
  
  
   
    
    
    
    
    
    
   
  
  
  
   
    
     
      
     
     
     
     
      
       
        
        
        
       
      
     
     
     
     
    
   
  
  
  
   
    
     
      
      
     
     
     
     
     
    
   
  
 
  
   
    
     
     
    
    
   
  
 
  
   
    
   
  
 
  
   
       
       
       
        
         
   This branch is short for 
   <complexContent> 
   <restriction base="xs:anyType"> 
   ... 
   </restriction> 
   </complexContent> 
        
        
        
       
   
  
 
  
   
    
     
     
      
       
      Will be restricted to required or forbidden 
      
     
     
      
       
      Not allowed if simpleContent child is chosen. 
      May be overriden by setting on complexContent child. 
     
     
     
     
     
    
   
  
  
  
   
    
     
      
      
     
     
    
   
  
  
  
   
    
     
      
      
     
     
     
     
     
    
   
  
  
  
   
    
     
      
       
       
      
      
     
     
    
          
  
 
  
   
    
     
      
      
      
     
    
          
  
 
  
   
    
     
      
      
     
     
    
          
  
 
  
   
    
   
   
    
     
      
       
       
           
      
       
        
       Overrides any setting on complexType parent. 
       
     
     
    
   
  
 
  
   
    
     
      
      
      
     
    
   
  
 
  
   
    
     
      
       
      No typeDefParticle group reference 
      
      
      
     
    
   
  
 
  
   
    
   
   
    
     
      
       
       
      
     
    
   
  
  
  
   
    
   
  
 
 
   
    
     
    A utility type, not for public use 
     
    #all or (possibly empty) subset of {substitution, extension, 
    restriction} 
    
    
         
      
       
      
     
     
      
       
        
         
         
         
        
       
      
     
      
   
 
  
   
    
   The element element can be used either 
   at the top level to define an element-type binding globally, 
   or within a content model to either reference a globally-defined 
   element or type or declare an element-type binding locally. 
   The ref form is not allowed at the top level. 
   
 
   
    
     
      
       
       
      
      
     
     
     
     
     
     
     
     
     
     
     
     
    
   
  
  
  
   
    
     
      
      
       
       
      
      
     
     
     
     
     
     
    
   
  
  
  
   
    
     
      
      
       
       
      
      
     
     
     
     
    
   
  
 
  
   
    
   
  
 
  
   
    
   group type for explicit groups, named top-level groups and 
   group references 
   
   
    
     
     
     
    
   
  
  
  
   
    
     
      
      
       
       
       
      
     
    
   
  
 
  
   
    
     
      
      
       
        
         
          
           
           
           
          
         
        
       
       
       
      
     
     
     
     
     
    
   
  
 
  
   
    
     
      
     
     
     
    
   
  
 
  
   
    
   group type for the three kinds of group 
   
   
    
     
      
      
     
     
     
    
   
  
  
  
   
    
     
      
      
     
     
     
    
   
  
  
  
   
       
       
        
         
         restricted max/min 
         
         
          
           
            
            
             
             
            
            
           
           
            
             
              
              
             
            
           
           
            
             
              
              
             
            
           
          
         
            
       
      
  
 
   
    
     
   Only elements allowed inside 
    
    
     
      
      
       
        
         
         
        
       
      
      
       
        
         
        
       
      
     
    
   
 
  
   
    
   
  
 
  
   
    
   
  
 
  
   
    
   
  
 
  
   
    
   
  
 
  
   
    
     
     
      
       
        
        
        
       
      
     
    
   
  
 
  
   
    
   
   
    
     
      
     
    
   
  
 
   
    
   simple type for the value of the 'namespace' attr of 
   'any' and 'anyAttribute' 
   
   
    
   Value is 
              ##any      - - any non-conflicting WFXML/attribute at all 
 
              ##other    - - any non-conflicting WFXML/attribute from 
                              namespace other than targetNS 
 
              ##local    - - any unqualified non-conflicting WFXML/attribute  
 
              one or     - - any non-conflicting WFXML/attribute from 
              more URI        the listed namespaces 
              references 
              (space separated) 
 
    ##targetNamespace or ##local may appear in the above list, to 
        refer to the targetNamespace of the enclosing 
        schema or an absent targetNamespace respectively 
   
 
  
   
    
   A utility type, not for public use 
   
   
    
     
      
      
     
    
    
     
      
       
        
         
          
          
         
        
       
      
     
    
   
  
 
  
   
    
   
  
 
  
   
    
     
     
    
   
  
  
  
   
    
     
      
      
     
     
     
    
   
  
 
  
   
    
     
      
     
     
     
    
   
  
 
  
   
    
   
  
 
  
   
    
   
   
    
     
      
     
    
   
  
 
  
   
    
   
   
    
     
      
       
       
      
      
      
     
    
   
  
 
  
   
    
   
   
    
     
      
      
     
    
   
  
 
  
   
    
   
   
   
    
      
       
        
        A subset of XPath expressions for use 
in selectors 
        A utility type, not for public 
use 
        
        
         
         The following pattern is intended to allow XPath 
                           expressions per the following EBNF: 
          Selector    ::=    Path ( '|' Path )*   
          Path    ::=    ('.//')? Step ( '/' Step )*   
          Step    ::=    '.' | NameTest   
          NameTest    ::=    QName | '*' | NCName ':' '*'   
                           child:: is also allowed 
          
         
         
         
        
       
      
    
   
  
  
 
  
   
    
   
   
   
    
      
       
        
        A subset of XPath expressions for use 
in fields 
        A utility type, not for public 
use 
        
        
         
         The following pattern is intended to allow XPath 
                           expressions per the same EBNF as for selector, 
                           with the following change: 
          Path    ::=    ('.//')? ( Step '/' )* ( Step | '@' NameTest )  
          
         
         
         
        
       
      
    
   
  
  
 
  
   
    
     
      
      
     
     
    
   
  
 
  
   
   The three kinds of identity constraints, all with 
                     type of or derived from 'keybase'. 
    
   
   
    
    
    
   
  
 
  
   
    
   
  
  
   
    
   
  
  
   
    
   
   
    
     
      
     
    
   
  
 
  
   
    
   
   
    
     
      
      
      
     
    
   
  
 
  
   
    
   A utility type, not for public use 
    
   A public identifier, per ISO 8879 
   
   
  
 
  
    
      
    
    
      
        
      
      
    
  
 
  
    
      
    
    
      
        
      
      
    
    
  
 
  
    
      
    
    
     
      
       
        
        
       
       
      
     
    
  
 
  
   
   notations for use within XML Schema schemas 
  
 
  
  
  
  
   
    
   Not the real urType, but as close an approximation as we can 
   get in the XML representation 
   
   
    
   
   
  
 
   
     
      First the built-in primitive datatypes.  These definitions are for 
      information only, the real built-in definitions are magic.  Note in 
      particular that there is no type named 'anySimpleType'.  The 
      primitives should really be derived from no type at all, and 
      anySimpleType should be derived as a union of all the primitives. 
     
 
     
      For each built-in datatype in this schema (both primitive and 
      derived) can be uniquely addressed via a URI constructed 
      as follows: 
        1) the base URI is the URI of the XML Schema namespace 
        2) the fragment identifier is the name of the datatype 
         
      For example, to address the int datatype, the URI is: 
       
        http://www.w3.org/2001/XMLSchema#int 
       
      Additionally, each facet definition element can be uniquely 
      addressed via a URI constructed as follows: 
        1) the base URI is the URI of the XML Schema namespace 
        2) the fragment identifier is the name of the facet 
         
      For example, to address the maxInclusive facet, the URI is: 
       
        http://www.w3.org/2001/XMLSchema#maxInclusive 
 
      Additionally, each facet usage in a built-in datatype definition 
      can be uniquely addressed via a URI constructed as follows: 
        1) the base URI is the URI of the XML Schema namespace 
        2) the fragment identifier is the name of the datatype, followed 
           by a period (".") followed by the name of the facet 
         
      For example, to address the usage of the maxInclusive facet in 
      the definition of int, the URI is: 
       
        http://www.w3.org/2001/XMLSchema#int.maxInclusive 
         
     
   
  
   
     
       
         
         
         
         
         
         
         
         
         
         
       
       
     
     
       
     
   
 
   
     
       
         
         
         
         
         
         
       
       
     
     
       
     
   
 
   
     
       
         
         
         
         
         
         
         
         
         
         
         
       
       
     
     
       
     
   
 
   
     
       
         
         
         
         
         
         
         
         
         
         
         
       
       
     
     
       
     
   
 
   
     
       
         
         
         
         
         
         
         
         
         
         
         
         
         
       
       
     
     
       
     
    
 
    
     
       
         
         
         
         
         
         
         
         
         
         
         
       
       
     
     
       
     
    
 
  
     
     
         
         
         
         
         
         
         
         
         
         
         
       
       
     
     
       
     
   
 
   
     
     
         
         
         
         
         
         
         
         
         
         
         
       
       
     
     
       
     
   
 
   
    
     
         
         
         
         
         
         
         
         
         
         
         
       
       
     
     
       
     
   
 
   
    
     
         
         
         
         
         
         
         
         
         
         
         
       
       
     
     
       
     
   
 
   
     
     
         
         
         
         
         
         
         
         
         
         
         
       
       
     
     
       
     
   
 
  
     
       
         
         
         
         
         
         
         
         
         
         
         
       
        
     
     
          
     
   
 
   
     
   
         
         
         
         
         
         
         
         
         
         
         
       
       
     
     
          
     
   
 
  
     
   
         
         
         
         
         
         
         
         
         
         
         
       
       
     
     
          
     
   
 
    
     
       
         
         
         
         
         
         
         
         
         
         
       
       
     
     
       
     
    
  
  
     
       
         
         
         
         
         
         
         
         
         
         
       
       
     
     
       
     
    
 
    
     
       
         
         
         
         
         
         
         
         
         
         
       
       
     
     
       
     
    
 
   
     
         
         
         
         
         
         
         
         
         
         
         
       
       
     
     
       
     
   
 
    
     
         
         
         
         
         
         
         
         
         
         
         
       
       
       
        NOTATION cannot be used directly in a schema; rather a type 
        must be derived from it by specifying at least one enumeration 
        facet whose value is the name of a NOTATION declared in the 
        schema. 
       
     
     
       
     
   
 
   
     
      Now the derived primitive types 
     
   
 
   
     
       
     
     
       
     
   
   
   
     
       
     
     
       
     
   
   
   
     
       
     
     
       
         
           
            pattern specifies the content of section 2.12 of XML 1.0e2 
            and RFC 1766 
           
         
       
     
   
 
   
     
       
         
         
         
         
         
         
         
         
         
       
       
     
     
       
             
       
         
     
   
 
   
     
       
         
         
         
         
         
         
         
         
         
       
       
     
     
       
         
       
         
     
   
 
   
     
       
     
     
       
         
           
            pattern matches production 7 from the XML spec 
           
         
       
     
   
 
   
     
       
         
         
         
         
         
         
         
         
         
       
       
     
     
       
         
       
         
     
   
 
   
     
       
     
     
       
         
           
            pattern matches production 5 from the XML spec 
           
         
       
     
   
 
   
     
       
     
     
       
         
           
            pattern matches production 4 from the Namespaces in XML spec 
           
         
       
     
   
 
    
     
       
     
     
    
 
    
     
       
     
     
    
 
    
     
       
     
     
    
 
   
     
       
     
     
       
     
   
 
   
     
       
     
     
       
     
   
 
   
     
       
     
     
       
     
   
 
   
     
       
         
         
       
       
     
     
       
       
     
   
 
   
     
       
     
     
       
       
     
   
 
   
     
       
     
     
       
       
     
   
 
   
     
       
     
     
       
       
     
   
 
   
     
       
     
     
       
     
   
 
   
     
       
         
         
       
       
     
     
       
     
   
 
   
     
       
     
     
       
     
   
 
   
     
       
     
     
       
     
   
 
   
     
       
     
     
       
     
   
 
   
     
       
     
     
       
     
   
 
  
   
    
   A utility type, not for public use 
   
   
    
    
    
    
    
   
  
 
  
   
     
     
     
   
  
 
  
   
    
   #all or (possibly empty) subset of {restriction, union, list} 
    
    
   A utility type, not for public use 
   
   
        
     
      
     
    
    
     
      
      
      
     
    
   
  
 
   
     
       
         
         
         
           
             
              Can be restricted to required or forbidden 
             
           
         
       
     
   
 
   
     
       
         
           
           
         
         
           
             
              Required at the top level 
             
           
            
       
     
   
 
   
     
       
         
           
           
         
         
           
             
              Forbidden when nested 
             
           
            
         
       
     
   
 
   
     
       
     
   
 
   
    
     
       We should use a substitution group for facets, but 
       that's ruled out because it would allow users to 
       add their own, which we're not ready for yet. 
     
    
    
     
     
     
     
     
     
     
     
     
     
     
     
    
   
 
   
    
     
     
    
   
 
   
    
     
       
          base attribute and simpleType child are mutually 
          exclusive, but one or other is required 
         
       
       
         
          
          
         
       
     
   
 
   
    
     
       
          itemType attribute and simpleType child are mutually 
          exclusive, but one or other is required 
         
       
       
         
           
             
           
           
         
       
     
   
 
   
    
     
       
          memberTypes attribute must be non-empty or there must be 
          at least one simpleType child