<?xml version="1.0" encoding="UTF-8"?>
<tbody>
  <tr>
    <th>Id</th>
    <th>Pattern</th>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AllElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:all/xs:element/(.)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AnyAttributeLax"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:anyAttribute[(@processContents = 'lax')
	    and (not(@namespace) or @namespace = '##any')]/
	    (., @processContents, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AnyAttributeNamespacedFinite"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:anyAttribute[@processContents
         and @namespace
         and (not (@namespace = '##targetNamespace'))
         and (not (@namespace = '##any'))
         and (not (@namespace = '##local'))
         and (not (@namespace = '##other'))]/
         (., @processContents, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AnyAttributeOtherLax"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:anyAttribute[(@processContents = 'lax')
	    and (@namespace = '##other')]/
	    (., @processContents, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AnyAttributeOtherSkip"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:anyAttribute[(@processContents = 'skip')
	    and (@namespace = '##other')]/
	    (., @processContents, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AnyAttributeOtherStrict"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:anyAttribute[(not(@processContents) or @processContents = 'strict')
	    and (@namespace = '##other')]/
	    (., @processContents, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AnyAttributeSkip"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:anyAttribute[(@processContents = 'skip')
	    and (not(@namespace) or @namespace = '##any')]/
	    (., @processContents, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AnyAttributeStrict"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:anyAttribute[(not(@processContents) or @processContents = 'strict')
	    and (not(@namespace) or @namespace = '##any')]/
	    (., @processContents, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AnySimpleTypeAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:anySimpleType')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AnySimpleTypeElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:anySimpleType')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AnyTypeElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:anyType')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AnyURIEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:anyURI') and xs:enumeration]/
         (., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AppinfoElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:annotation/xs:appinfo/
		(.., ., .//*, .//@*)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AttributeDefault"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute[@default] / 
		(@default)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AttributeElementNameClash"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:sequence/xs:element[@name = ../../xs:attribute/@name]/
	    (@name)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AttributeFixed"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute[@fixed] / 
		(@fixed)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AttributeFormQualified"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute[@form='qualified']/
		(@form)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AttributeGroup"/>
    </td>
    <td>
      <xpath-summary>.//xs:attributeGroup/(.,@name,@ref,xs:attribute)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AttributeGroupAnyAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attributeGroup/xs:anyAttribute/(.,@namespace,@processContents)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AttributeProhibited"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute[@use = 'prohibited']/ 
         (@use)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AttributeReferenceUnqualified"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute[@ref and not(contains(@ref, ':'))]/
	    (., @ref)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AttributeRequired"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute[@use = 'required']/ 
		(@use)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-AttributeTypeReferenceUnqualified"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute[@name and @type 
	    and namespace-uri-from-QName(resolve-QName(@type,.)) != 'http://www.w3.org/2001/XMLSchema' 
	    and not(contains(@type, ':'))]/
		(., @name, @type)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-Base64BinaryAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:base64Binary')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-BlockDefault"/>
    </td>
    <td>
      <xpath-summary>./@blockDefault</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ByteSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:byte')]/xs:pattern[@value]/
         (.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ChoiceChoice"/>
    </td>
    <td>
      <xpath-summary>.//xs:choice/xs:choice/(.)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ChoiceElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:choice/xs:element/(.)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ChoiceMaxOccursFinite"/>
    </td>
    <td>
      <xpath-summary>.//xs:choice[@maxOccurs and not(@maxOccurs = '0' or @maxOccurs = '1' or @maxOccurs = 'unbounded')]/
         (@maxOccurs)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ChoiceMaxOccursUnbounded"/>
    </td>
    <td>
      <xpath-summary>.//xs:choice[@maxOccurs = 'unbounded']/
		(@maxOccurs) </xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ChoiceMinOccurs0"/>
    </td>
    <td>
      <xpath-summary>.//xs:choice[@minOccurs='0']/
         (@minOccurs) </xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ChoiceMinOccursFinite"/>
    </td>
    <td>
      <xpath-summary>.//xs:choice[@minOccurs and not(@minOccurs = '0' or @minOccurs = '1')]/
         (@minOccurs)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ChoiceSequence"/>
    </td>
    <td>
      <xpath-summary>.//xs:choice/xs:sequence/(.)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ComplexContentExtensionAnyAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:complexContent/xs:extension/xs:anyAttribute/(., @namespace, @processContents)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ComplexContentRestrictionAnyAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:complexContent/xs:restriction/xs:anyAttribute/(., @namespace, @processContents)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ComplexTypeAll"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:all/
		(., xs:element/(., @name))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ComplexTypeAnyAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:anyAttribute</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ComplexTypeAttributeGroupExtension"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:complexContent[xs:extension[@base]/xs:attributeGroup]/
         (., xs:extension/
         (., @base, xs:attributeGroup))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ComplexTypeAttributeRestriction"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:complexContent[xs:restriction[@base]/xs:attribute]/
         (., xs:restriction/(., @base, xs:attribute/(., @name)))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ComplexTypeChoice"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:choice/
		(., xs:element/(., @name))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ComplexTypeChoiceAny"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:choice/xs:any/(., @namespace, @processContents, @maxOccurs, @minOccurs)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ComplexTypeChoiceExtension"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:complexContent[xs:extension[@base]/xs:choice]/
         (., xs:extension/
         (., @base, xs:choice/(., xs:element/(., @name))))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ComplexTypeExtensionAnnotationOnly"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:complexContent/xs:extension[@base]/xs:annotation[not(preceding-sibling::*) and not(following-sibling::*)]/
         (../(., @base), ../../(.))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ComplexTypeFinal"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType[@final]/(., @final)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ComplexTypeOnlyAttributeGroup"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:attributeGroup[../not(xs:choice or xs:sequence or xs:all or xs:anyAttribute 
         or xs:group or xs:simpleContent or xs:complexContent)]/(., ..,@ref)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ComplexTypeOnlyAttributes"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:attribute[../not(xs:choice or xs:sequence or xs:all or xs:anyAttribute or xs:group 
         or xs:attributeGroup or xs:simpleContent or xs:complexContent)]/
         (., ..,@use)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ComplexTypeSequenceChoice"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:sequence/xs:choice/
         (., xs:element/(., @name))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ComplexTypeSequenceChoiceAny"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:sequence/xs:choice/xs:any/(., @namespace, @processContents, @maxOccurs, @minOccurs)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ComplexTypeSequenceRestriction"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:complexContent[xs:restriction[@base]/xs:sequence]/
         (., xs:restriction/(., @base, xs:sequence))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-DateAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:date')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-DateElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:date')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-DateSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:date')]/xs:pattern[@value]/
         (.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-DecimalAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:decimal')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-DecimalElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:decimal')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-DecimalEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:decimal') and xs:enumeration]/
		(., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-DecimalSimpleTypeFractionDigits"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:decimal') and xs:fractionDigits/@value]/
         (., @base, xs:fractionDigits/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-DecimalSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:decimal')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-DecimalSimpleTypeTotalDigits"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:decimal') and xs:totalDigits/@value]/
	    (., @base, xs:totalDigits/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-DoubleEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:double') and xs:enumeration]/
		(., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-DoubleSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:double')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-DurationAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:duration')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-DurationElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:duration')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ENTITIESAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:ENTITIES')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ENTITIESElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:ENTITIES')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ENTITYAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:ENTITY')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ENTITYElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:ENTITY')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ElementDefault"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/
		(@default)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ElementDefaultAnyType"/>
    </td>
    <td>
      <xpath-summary>.//xs:element[@name and not(@type) and ./not(xs:simpleType or xs:complexType or xs:unique or xs:key or xs:keyref)]/(.)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ElementFixed"/>
    </td>
    <td>
      <xpath-summary>.//xs:element[@fixed] / 
         (@fixed)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ElementFormUnqualified"/>
    </td>
    <td>
      <xpath-summary>.//xs:element[@form='unqualified']/
		(@form)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ElementGroup"/>
    </td>
    <td>
      <xpath-summary>.//xs:group/(.,@name,@ref,@minOccurs,@maxOccurs,xs:sequence,xs:all,xs:choice)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ElementKey"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/xs:key[xs:selector and xs:field]/(., xs:selector, xs:selector/(@xpath), xs:field, xs:field/(@xpath))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ElementMaxOccursFinite"/>
    </td>
    <td>
      <xpath-summary>.//xs:element[@maxOccurs and not(@maxOccurs = '0' or @maxOccurs = '1' or @maxOccurs = 'unbounded')]/
		(@maxOccurs)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ElementMinOccurs0MaxOccursFinite"/>
    </td>
    <td>
      <xpath-summary>.//xs:element[@minOccurs = '0' and @maxOccurs and not(@maxOccurs = '0' or @maxOccurs = '1' or @maxOccurs = 'unbounded')]/
		(@minOccurs, @maxOccurs)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ElementMinOccursFinite"/>
    </td>
    <td>
      <xpath-summary>.//xs:element[xs:integer(@minOccurs) gt 1]/
		(@minOccurs, @maxOccurs)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ElementReferenceUnqualified"/>
    </td>
    <td>
      <xpath-summary>.//xs:element[@ref and not(contains(@ref, ':'))]/
	    (., @ref)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ElementTypeDefaultNamespace"/>
    </td>
    <td>
      <xpath-summary>.//xs:element[@name and @type and not(contains(@type, ':'))]/
		(@name, @type)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ElementTypeReferenceUnqualified"/>
    </td>
    <td>
      <xpath-summary>.//xs:element[@name and @type 
	    and namespace-uri-from-QName(resolve-QName(@type,.)) != 'http://www.w3.org/2001/XMLSchema' 
	    and not(contains(@type, ':'))]/
	    (., @name, @type)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ExtendedSequenceLax"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence/xs:any[@processContents = 'lax'
	    and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0')
	    and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded')
	    and @namespace = '##targetNamespace']/
	    (., @processContents, @minOccurs, @maxOccurs, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ExtendedSequenceLaxAny"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence/xs:any[@processContents = 'lax'
	    and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0')
	    and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded')
	    and (not(@namespace) or @namespace = '##any')]/
	    (., @processContents, @minOccurs, @maxOccurs, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ExtendedSequenceLaxOther"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence/xs:any[@processContents = 'lax'
	    and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0')
	    and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded')
	    and @namespace = '##other']/
	    (., @processContents, @minOccurs, @maxOccurs, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ExtendedSequenceNamespacedFinite"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence/xs:any[@processContents
         and @namespace
         and @maxOccurs
         and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0')
         and (not (@maxOccurs = '1') )
         and (not (@maxOccurs='unbounded'))
         and (not (@namespace = '##targetNamespace'))
         and (not (@namespace = '##any'))
         and (not (@namespace = '##local'))
         and (not (@namespace = '##other'))]/
         (., @processContents, @minOccurs, @maxOccurs, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ExtendedSequenceSkip"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence/xs:any[@processContents = 'skip'
	    and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0')
	    and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded')
	    and @namespace = '##targetNamespace']/
	    (., @processContents, @minOccurs, @maxOccurs, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ExtendedSequenceSkipAny"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence/xs:any[@processContents = 'skip'
	    and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0')
	    and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded')
	    and (not(@namespace) or @namespace = '##any')]/
	    (., @processContents, @minOccurs, @maxOccurs, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ExtendedSequenceSkipOther"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence/xs:any[@processContents = 'skip'
	    and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0')
	    and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded')
	    and @namespace = '##other']/
	    (., @processContents, @minOccurs, @maxOccurs, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ExtendedSequenceStrict"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence/xs:any[(not(@processContents) or @processContents = 'strict')
	    and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0')
	    and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded')
	    and @namespace = '##targetNamespace']/
	    (., @processContents, @minOccurs, @maxOccurs, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ExtendedSequenceStrictAny"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence/xs:any[(not(@processContents) or @processContents = 'strict')
	    and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0')
	    and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded')
	    and (not(@namespace) or @namespace = '##any')]/
	    (., @processContents, @minOccurs, @maxOccurs, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ExtendedSequenceStrictOther"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence/xs:any[(not(@processContents) or @processContents = 'strict')
	    and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0')
	    and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded')
	    and @namespace = '##other']/
	    (., @processContents, @minOccurs, @maxOccurs, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ExtendedSimpleContent"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:simpleContent/xs:extension[@base]/
	    (.., ., ./@base, xs:attribute/
		(., @name))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-FinalDefault"/>
    </td>
    <td>
      <xpath-summary>./@finalDefault</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-FloatAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:float')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-FloatElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:float')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-FloatEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:float') and xs:enumeration]/
		(., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-FloatSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:float')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GDayAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:gDay')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GDayElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:gDay')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GDaySimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:gDay')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GMonthAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:gMonth')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GMonthDayAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:gMonthDay')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GMonthDayElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:gMonthDay')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GMonthDaySimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:gMonthDay')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GMonthElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:gMonth')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GMonthSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:gMonth')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GYearAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:gYear')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GYearElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:gYear')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GYearMonthAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:gYearMonth')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GYearMonthElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:gYearMonth')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GYearMonthSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:gYearMonth')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GYearSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:gYear')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GlobalAttributeSimpleType"/>
    </td>
    <td>
      <xpath-summary>./xs:attribute/xs:simpleType/(../(., @name), .., ., descendant::*, descendant::*/@value, descendant::*/@base)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GlobalAttributeUnqualifiedType"/>
    </td>
    <td>
      <xpath-summary>./xs:attribute[@name and @type and not(contains(@type, ':'))]/
		(., @name, @type)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GlobalComplexTypeAbstract"/>
    </td>
    <td>
      <xpath-summary>./xs:complexType[@abstract='true']/
		(@abstract)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GlobalComplexTypeBlock"/>
    </td>
    <td>
      <xpath-summary>./xs:complexType/ 
		(@block)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GlobalComplexTypeEmptyExtension"/>
    </td>
    <td>
      <xpath-summary>./xs:complexType[@name]/xs:complexContent[xs:extension[@base]/not(*)]/
		(../../(., @name), .., ., xs:extension/(., @base))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GlobalElementAbstract"/>
    </td>
    <td>
      <xpath-summary>./xs:element[@abstract='true']/
		(@abstract)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GlobalElementAll"/>
    </td>
    <td>
      <xpath-summary>./xs:element[@name]/xs:complexType/xs:all[xs:element]/
		(../../(., @name), .., ., xs:element/(., @name))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GlobalElementBlock"/>
    </td>
    <td>
      <xpath-summary>./xs:element/
		(@block)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GlobalElementChoice"/>
    </td>
    <td>
      <xpath-summary>./xs:element[@name]/xs:complexType/xs:choice[xs:element]/
		(../../(., @name), .., ., xs:element/(., @name))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GlobalElementComplexTypeEmptyExtension"/>
    </td>
    <td>
      <xpath-summary>./xs:element[@name]/xs:complexType/xs:complexContent[xs:extension[@base]/not(*)]/
		(../../(., @name), .., ., xs:extension/(., @base))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GlobalElementComplexTypeSequenceExtension"/>
    </td>
    <td>
      <xpath-summary>./xs:element[@name]/xs:complexType/xs:complexContent[xs:extension[@base]/xs:sequence]/
		(../../(., @name), 
		.., ., 
		xs:extension/(., @base, 
		xs:sequence/(., xs:element/(., @name), 
		xs:attribute/(., @name))))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GlobalElementFinal"/>
    </td>
    <td>
      <xpath-summary>./xs:element/
		(@final)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GlobalElementSequenceAny"/>
    </td>
    <td>
      <xpath-summary>./xs:element[@name]/xs:complexType/xs:sequence[xs:any and not(xs:element)]/
		(../../(., @name))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GlobalElementSimpleType"/>
    </td>
    <td>
      <xpath-summary>./xs:element[@name]/xs:simpleType/
		(../(., @name), .)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-GlobalElementUnqualifiedType"/>
    </td>
    <td>
      <xpath-summary>./xs:element[@name 
		and @type and not(contains(@type, ':'))]/
		(., @name, @type)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-HexBinaryAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:hexBinary')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-HexBinaryElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:hexBinary')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-IDAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:ID')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-IDElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:ID')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-IDREFAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:IDREF')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-IDREFElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:IDREF')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-IDREFSAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:IDREFS')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-IDREFSElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:IDREFS')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ImportSchemaNamespace"/>
    </td>
    <td>
      <xpath-summary>./xs:import[not(@schemaLocation)
		and @namespace = 'http://www.w3.org/2001/XMLSchema']/
		(., @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-IntEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:int') and xs:enumeration]/
		(., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-IntSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:int')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-IntegerAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:integer')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-IntegerElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:integer')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-IntegerEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:integer') and xs:enumeration]/
		(., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-IntegerSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:integer')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-LanguageAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:language')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-LanguageElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:language')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-LanguageEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:language') and xs:enumeration]/
         (., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-List"/>
    </td>
    <td>
      <xpath-summary>.//xs:list[@itemType]/
		(., @itemType)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-LocalAttributeSimpleType"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute[not(parent::xs:schema)]/xs:simpleType</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-LocalElementComplexTypeEmptyExtension"/>
    </td>
    <td>
      <xpath-summary>.//xs:element[not(parent::xs:schema)]/xs:complexType[not(@name)]/xs:complexContent[xs:extension[@base]/not(*)]/
         (../../(., @name), .., ., xs:extension/(., @base))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-LocalElementSimpleType"/>
    </td>
    <td>
      <xpath-summary>.//xs:element[not(parent::xs:schema)]/xs:simpleType</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-LongEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:long') and xs:enumeration]/
		(., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-LongSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:long')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-MaxOccurs0"/>
    </td>
    <td>
      <xpath-summary>.//xs:element[@maxOccurs='0']/(., @maxOccurs, @minOccurs)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-MixedComplexContent"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexContent[@mixed = 'true']/
		(@mixed)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-MixedContentType"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType[@mixed = 'true']/
		(@mixed)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-NMTOKENAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:NMTOKEN')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-NMTOKENElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:NMTOKEN')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-NMTOKENEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:NMTOKEN') and xs:enumeration]/
		(., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-NMTOKENSAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:NMTOKENS')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-NMTOKENSElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:NMTOKENS')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-NegativeIntegerAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:negativeInteger')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-NegativeIntegerElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:negativeInteger')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-NillableOptionalElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element[@nillable = 'true' and @minOccurs = '0']/
	    (@nillable, @minOccurs)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-NoTargetNamespace"/>
    </td>
    <td>
      <xpath-summary>.[not(@targetNamespace)]/
		(.)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-NonNegativeIntegerElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:nonNegativeInteger')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-NonNegativeIntegerEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:nonNegativeInteger') and xs:enumeration]/
		(., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-NonNegativeIntegerSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:nonNegativeInteger')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-NonPositiveIntegerAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:nonPositiveInteger')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-NonPositiveIntegerElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:nonPositiveInteger')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-PositiveIntegerEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:positiveInteger')
		and xs:enumeration]/
		(., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-PositiveIntegerSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:positiveInteger')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-PrecisionDecimal"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:union[
	    xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:decimal')]/xs:totalDigits[@value ='16']
	    and xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:double')]
	    and xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string') 
		    and xs:enumeration/@value='NaN' and xs:enumeration/@value='-INF' and not(xs:enumeration[3])]
	    and not(xs:simpleType[4] | xs:simpleType[@*])
	]/(., xs:simpleType/(., xs:restriction/(., @base, xs:totalDigits/(., @value), xs:enumeration/(., @value))))
      </xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-QNameEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:QName') and xs:enumeration]/
         (., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-QualifiedLocalAttributes"/>
    </td>
    <td>
      <xpath-summary>.[@attributeFormDefault = 'qualified']/
		(@attributeFormDefault)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-Redefine"/>
    </td>
    <td>
      <xpath-summary>.//xs:redefine[@schemaLocation] / (., @schemaLocation, child::*, child::*/@name, child::*/@base)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-RestrictedLength"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction/xs:length[@value]/(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-RestrictedMaxExclusive"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction/xs:maxExclusive[@value]/(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-RestrictedMaxInclusive"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction/xs:maxInclusive[@value]/(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-RestrictedMaxLength"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction/xs:maxLength[@value]/(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-RestrictedMinExclusive"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction/xs:minExclusive[@value]/(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-RestrictedMinInclusive"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction/xs:minInclusive[@value]/(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-RestrictedMinLength"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction/xs:minLength[@value]/(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-RestrictedPattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction/xs:pattern[@value]/(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-RestrictedSimpleContent"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:simpleContent/xs:restriction[@base]/(.., ., @base, child::*, child::*/@value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-RestrictedStringMaxLength"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string')]/xs:maxLength[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-RestrictedStringMinLength"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string')]/xs:minLength[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-RestrictedStringMinMaxLength"/>
    </td>
    <td>
      <xpath-summary>
	.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string') 
		and xs:minLength/@value
		and xs:maxLength/@value]/
		(., @base, xs:minLength/(., @value), xs:maxLength/(., @value))
	</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-RestrictedWhitespaceCollapse"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction/xs:whiteSpace[@value='collapse']/(.., ../@base, ., @value, @fixed)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-RestrictedWhitespacePreserve"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction/xs:whiteSpace[@value='preserve']/(.., ../@base, ., @value, @fixed)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-RestrictedWhitespaceReplace"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction/xs:whiteSpace[@value='replace']/(.., ../@base, ., @value, @fixed)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-SOAPEncodedArray"/>
    </td>
    <td>
      <xpath-summary>./xs:complexType[@name]/xs:complexContent/xs:restriction[
	    @base/resolve-QName(.,..) = xs:QName('soap11enc:Array')]/
	    xs:attribute[(@ref/resolve-QName(.,..) = xs:QName('soap11enc:arrayType')) 
	    and @wsdl11:arrayType]/
	    (../.., ../(., @base), ., @ref, @wsdl11:arrayType)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-SequenceAnyStrict"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence/xs:any[(not(@processContents) or @processContents = 'strict')
	    and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0')
	    and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded')
	    and (not (@namespace) or @namespace = '##any')]/
	(., @processContents, @minOccurs, @maxOccurs, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-SequenceChoice"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence/xs:choice/(.)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-SequenceMaxOccursFinite"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence[@maxOccurs and not(@maxOccurs = '0' or @maxOccurs = '1' or @maxOccurs = 'unbounded')]/
		 (@maxOccurs)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-SequenceMinOccurs0"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence[@minOccurs = '0' and (not(@maxOccurs) or @maxOccurs = '1')]/
		 (@minOccurs, @maxOccurs)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-SequenceMinOccurs0MaxOccursUnbounded"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence[@minOccurs = '0' and @maxOccurs = 'unbounded']/
		 (@minOccurs, @maxOccurs)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-SequenceMinOccurs1MaxOccursUnbounded"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence[(not(@minOccurs) or @minOccurs = '1') and @maxOccurs = 'unbounded']/
		 (@minOccurs, @maxOccurs)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-SequenceMinOccursFinite"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence[xs:integer(@minOccurs) gt 1]/
		 (@minOccurs, @maxOccurs)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-SequenceSequenceElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence/xs:sequence/xs:element/
		(., ..)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-SequenceSequenceGroup"/>
    </td>
    <td>
      <xpath-summary>.//xs:sequence/xs:sequence/xs:group/(., ..)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ShortEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:short') and xs:enumeration]/
		(., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-ShortSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:short')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-SimpleContentAnyAttributeLax"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:simpleContent/xs:extension/xs:anyAttribute[(@processContents = 'lax')
         and (@namespace = '##other')]/
         (., @processContents, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-SimpleContentAnyAttributeSkip"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:simpleContent/xs:extension/xs:anyAttribute[(@processContents = 'skip')]/
            (., @processContents)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-SimpleContentAnyAttributeStrict"/>
    </td>
    <td>
      <xpath-summary>.//xs:complexType/xs:simpleContent/xs:extension/xs:anyAttribute[not(@processContents) or (@processContents = 'strict')
         and (@namespace = '##other')]/
         (., @processContents, @namespace)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-SimpleTypeEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base and
	    namespace-uri-from-QName(resolve-QName(@base,.)) != 'http://www.w3.org/2001/XMLSchema' ]/
		(., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-SimpleTypeRenamed"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base and count(./*) = 0]/
		(., @base)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-StringSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-SubstitutionGroup"/>
    </td>
    <td>
      <xpath-summary>.//xs:element[@substitutionGroup]/(.,@name,@substitutionGroup)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-TimeAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:time')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-TimeElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:time')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-TokenEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:token') and xs:enumeration]/
         (., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-TokenSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:token')]/xs:pattern[@value]/
         (.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnionMemberTypes"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:union[@memberTypes and not(xs:simpleType)]/
		(., @memberTypes)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnionSimpleAndMemberTypes"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:union[@memberTypes and xs:simpleType]/
		(., @memberTypes, xs:simpleType)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnionSimpleTypes"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:union[not(@memberTypes)]/xs:simpleType/
		(.., .)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-Unique"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/xs:unique/(.., .,xs:selector,xs:selector/@xpath,xs:field,xs:field/@xpath)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnqualifiedLocalElements"/>
    </td>
    <td>
      <xpath-summary>.[not(@elementFormDefault) or @elementFormDefault = 'unqualified']/
		(., @elementFormDefault)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnsignedByteAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:unsignedByte')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnsignedByteElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:unsignedByte')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnsignedIntAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:unsignedInt')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnsignedIntElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:unsignedInt')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnsignedIntEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:unsignedInt') and xs:enumeration]/
		(., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnsignedIntSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:unsignedInt')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnsignedLongAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:unsignedLong')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnsignedLongElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:unsignedLong')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnsignedLongEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:unsignedLong') and xs:enumeration]/
		(., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnsignedLongSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:unsignedLong')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnsignedShortAttribute"/>
    </td>
    <td>
      <xpath-summary>.//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:unsignedShort')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnsignedShortElement"/>
    </td>
    <td>
      <xpath-summary>.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:unsignedShort')]</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnsignedShortEnumerationType"/>
    </td>
    <td>
      <xpath-summary>.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:unsignedShort') and xs:enumeration]/
		(., @base, xs:enumeration/(., @value))</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-UnsignedShortSimpleTypePattern"/>
    </td>
    <td>
      <xpath-summary>.//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:unsignedShort')]/xs:pattern[@value]/
		(.., ../@base, ., @value)</xpath-summary>
    </td>
  </tr>
  <tr>
    <td>
      <pattern-summary ref="pattern-XmlLang"/>
    </td>
    <td>
      <xpath-summary>.[@xml:lang] / (@xml:lang)</xpath-summary>
    </td>
  </tr>
</tbody>

