<?xml version="1.0" encoding="UTF-8"?>

<!--* 
<!DOCTYPE http://www.w3.org/2001/XMLSchema:schema []>
*-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:annotation>
    <xsd:documentation>
      <div xmlns="http://www.w3.org/1999/xhtml">
	<p>Dummy schema document for testing purposes. This doesn't really define a useful schema, it just acts as a holding place for a lot of pattern facets.</p>
	<p>Includes the regexes given in the last-call draft spec of 20 June 2008 for each built-in datatype. 8 August 2008.</p>
      </div>
    </xsd:documentation>
    <xsd:appinfo/>
  </xsd:annotation>
  <xsd:simpleType name="string">
    <xsd:annotation>
      <xsd:documentation>
	<p xmlns="http://www.w3.org/1999/xhtml">No regex specified in Last Call draft. An earlier draft gave the regex (\s|\S)* as a way of saying "zero or more legal characters".</p>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="(\s|\S)*">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="0" max="unbounded">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <charClass>
			    <mce kw="whitespace"/>
			  </charClass>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <charClass>
			    <mce not_kw="whitespace"/>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="boolean">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="true|false|0|1">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <or>
		<or>
		  <or>
		    <seq>
		      <count min="1" max="1">
			<c>t</c>
		      </count>
		      <count min="1" max="1">
			<c>r</c>
		      </count>
		      <count min="1" max="1">
			<c>u</c>
		      </count>
		      <count min="1" max="1">
			<c>e</c>
		      </count>
		    </seq>
		    <seq>
		      <count min="1" max="1">
			<c>f</c>
		      </count>
		      <count min="1" max="1">
			<c>a</c>
		      </count>
		      <count min="1" max="1">
			<c>l</c>
		      </count>
		      <count min="1" max="1">
			<c>s</c>
		      </count>
		      <count min="1" max="1">
			<c>e</c>
		      </count>
		    </seq>
		  </or>
		  <seq>
		    <count min="1" max="1">
		      <c>0</c>
		    </count>
		  </seq>
		</or>
		<seq>
		  <count min="1" max="1">
		    <c>1</c>
		  </count>
		</seq>
	      </or>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="decimal">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="(\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="0" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <charClass>
			    <sce>+</sce>
			  </charClass>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <c>-</c>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="unbounded">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="0" max="1">
			  <re>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <sce>.</sce>
				</charClass>
			      </count>
			      <count min="0" max="unbounded">
				<charClass>
				  <any_of>
				    <simple_range from="0" to="9"/>
				  </any_of>
				</charClass>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <charClass>
			    <sce>.</sce>
			  </charClass>
			</count>
			<count min="1" max="unbounded">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="precisionDecimal">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="(\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|(\+|-)?INF|NaN">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <or>
		<or>
		  <seq>
		    <count min="0" max="1">
		      <re>
			<or>
			  <seq>
			    <count min="1" max="1">
			      <charClass>
				<sce>+</sce>
			      </charClass>
			    </count>
			  </seq>
			  <seq>
			    <count min="1" max="1">
			      <c>-</c>
			    </count>
			  </seq>
			</or>
		      </re>
		    </count>
		    <count min="1" max="1">
		      <re>
			<or>
			  <seq>
			    <count min="1" max="unbounded">
			      <charClass>
				<any_of>
				  <simple_range from="0" to="9"/>
				</any_of>
			      </charClass>
			    </count>
			    <count min="0" max="1">
			      <re>
				<seq>
				  <count min="1" max="1">
				    <charClass>
				      <sce>.</sce>
				    </charClass>
				  </count>
				  <count min="0" max="unbounded">
				    <charClass>
				      <any_of>
					<simple_range from="0" to="9"/>
				      </any_of>
				    </charClass>
				  </count>
				</seq>
			      </re>
			    </count>
			  </seq>
			  <seq>
			    <count min="1" max="1">
			      <charClass>
				<sce>.</sce>
			      </charClass>
			    </count>
			    <count min="1" max="unbounded">
			      <charClass>
				<any_of>
				  <simple_range from="0" to="9"/>
				</any_of>
			      </charClass>
			    </count>
			  </seq>
			</or>
		      </re>
		    </count>
		    <count min="0" max="1">
		      <re>
			<seq>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<c>E</c>
				<c>e</c>
			      </any_of>
			    </charClass>
			  </count>
			  <count min="0" max="1">
			    <re>
			      <or>
				<seq>
				  <count min="1" max="1">
				    <charClass>
				      <sce>+</sce>
				    </charClass>
				  </count>
				</seq>
				<seq>
				  <count min="1" max="1">
				    <c>-</c>
				  </count>
				</seq>
			      </or>
			    </re>
			  </count>
			  <count min="1" max="unbounded">
			    <charClass>
			      <any_of>
				<simple_range from="0" to="9"/>
			      </any_of>
			    </charClass>
			  </count>
			</seq>
		      </re>
		    </count>
		  </seq>
		  <seq>
		    <count min="0" max="1">
		      <re>
			<or>
			  <seq>
			    <count min="1" max="1">
			      <charClass>
				<sce>+</sce>
			      </charClass>
			    </count>
			  </seq>
			  <seq>
			    <count min="1" max="1">
			      <c>-</c>
			    </count>
			  </seq>
			</or>
		      </re>
		    </count>
		    <count min="1" max="1">
		      <c>I</c>
		    </count>
		    <count min="1" max="1">
		      <c>N</c>
		    </count>
		    <count min="1" max="1">
		      <c>F</c>
		    </count>
		  </seq>
		</or>
		<seq>
		  <count min="1" max="1">
		    <c>N</c>
		  </count>
		  <count min="1" max="1">
		    <c>a</c>
		  </count>
		  <count min="1" max="1">
		    <c>N</c>
		  </count>
		</seq>
	      </or>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="float">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="(\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|(\+|-)?INF|NaN">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <or>
		<or>
		  <seq>
		    <count min="0" max="1">
		      <re>
			<or>
			  <seq>
			    <count min="1" max="1">
			      <charClass>
				<sce>+</sce>
			      </charClass>
			    </count>
			  </seq>
			  <seq>
			    <count min="1" max="1">
			      <c>-</c>
			    </count>
			  </seq>
			</or>
		      </re>
		    </count>
		    <count min="1" max="1">
		      <re>
			<or>
			  <seq>
			    <count min="1" max="unbounded">
			      <charClass>
				<any_of>
				  <simple_range from="0" to="9"/>
				</any_of>
			      </charClass>
			    </count>
			    <count min="0" max="1">
			      <re>
				<seq>
				  <count min="1" max="1">
				    <charClass>
				      <sce>.</sce>
				    </charClass>
				  </count>
				  <count min="0" max="unbounded">
				    <charClass>
				      <any_of>
					<simple_range from="0" to="9"/>
				      </any_of>
				    </charClass>
				  </count>
				</seq>
			      </re>
			    </count>
			  </seq>
			  <seq>
			    <count min="1" max="1">
			      <charClass>
				<sce>.</sce>
			      </charClass>
			    </count>
			    <count min="1" max="unbounded">
			      <charClass>
				<any_of>
				  <simple_range from="0" to="9"/>
				</any_of>
			      </charClass>
			    </count>
			  </seq>
			</or>
		      </re>
		    </count>
		    <count min="0" max="1">
		      <re>
			<seq>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<c>E</c>
				<c>e</c>
			      </any_of>
			    </charClass>
			  </count>
			  <count min="0" max="1">
			    <re>
			      <or>
				<seq>
				  <count min="1" max="1">
				    <charClass>
				      <sce>+</sce>
				    </charClass>
				  </count>
				</seq>
				<seq>
				  <count min="1" max="1">
				    <c>-</c>
				  </count>
				</seq>
			      </or>
			    </re>
			  </count>
			  <count min="1" max="unbounded">
			    <charClass>
			      <any_of>
				<simple_range from="0" to="9"/>
			      </any_of>
			    </charClass>
			  </count>
			</seq>
		      </re>
		    </count>
		  </seq>
		  <seq>
		    <count min="0" max="1">
		      <re>
			<or>
			  <seq>
			    <count min="1" max="1">
			      <charClass>
				<sce>+</sce>
			      </charClass>
			    </count>
			  </seq>
			  <seq>
			    <count min="1" max="1">
			      <c>-</c>
			    </count>
			  </seq>
			</or>
		      </re>
		    </count>
		    <count min="1" max="1">
		      <c>I</c>
		    </count>
		    <count min="1" max="1">
		      <c>N</c>
		    </count>
		    <count min="1" max="1">
		      <c>F</c>
		    </count>
		  </seq>
		</or>
		<seq>
		  <count min="1" max="1">
		    <c>N</c>
		  </count>
		  <count min="1" max="1">
		    <c>a</c>
		  </count>
		  <count min="1" max="1">
		    <c>N</c>
		  </count>
		</seq>
	      </or>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="double">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="(\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|(\+|-)?INF|NaN">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <or>
		<or>
		  <seq>
		    <count min="0" max="1">
		      <re>
			<or>
			  <seq>
			    <count min="1" max="1">
			      <charClass>
				<sce>+</sce>
			      </charClass>
			    </count>
			  </seq>
			  <seq>
			    <count min="1" max="1">
			      <c>-</c>
			    </count>
			  </seq>
			</or>
		      </re>
		    </count>
		    <count min="1" max="1">
		      <re>
			<or>
			  <seq>
			    <count min="1" max="unbounded">
			      <charClass>
				<any_of>
				  <simple_range from="0" to="9"/>
				</any_of>
			      </charClass>
			    </count>
			    <count min="0" max="1">
			      <re>
				<seq>
				  <count min="1" max="1">
				    <charClass>
				      <sce>.</sce>
				    </charClass>
				  </count>
				  <count min="0" max="unbounded">
				    <charClass>
				      <any_of>
					<simple_range from="0" to="9"/>
				      </any_of>
				    </charClass>
				  </count>
				</seq>
			      </re>
			    </count>
			  </seq>
			  <seq>
			    <count min="1" max="1">
			      <charClass>
				<sce>.</sce>
			      </charClass>
			    </count>
			    <count min="1" max="unbounded">
			      <charClass>
				<any_of>
				  <simple_range from="0" to="9"/>
				</any_of>
			      </charClass>
			    </count>
			  </seq>
			</or>
		      </re>
		    </count>
		    <count min="0" max="1">
		      <re>
			<seq>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<c>E</c>
				<c>e</c>
			      </any_of>
			    </charClass>
			  </count>
			  <count min="0" max="1">
			    <re>
			      <or>
				<seq>
				  <count min="1" max="1">
				    <charClass>
				      <sce>+</sce>
				    </charClass>
				  </count>
				</seq>
				<seq>
				  <count min="1" max="1">
				    <c>-</c>
				  </count>
				</seq>
			      </or>
			    </re>
			  </count>
			  <count min="1" max="unbounded">
			    <charClass>
			      <any_of>
				<simple_range from="0" to="9"/>
			      </any_of>
			    </charClass>
			  </count>
			</seq>
		      </re>
		    </count>
		  </seq>
		  <seq>
		    <count min="0" max="1">
		      <re>
			<or>
			  <seq>
			    <count min="1" max="1">
			      <charClass>
				<sce>+</sce>
			      </charClass>
			    </count>
			  </seq>
			  <seq>
			    <count min="1" max="1">
			      <c>-</c>
			    </count>
			  </seq>
			</or>
		      </re>
		    </count>
		    <count min="1" max="1">
		      <c>I</c>
		    </count>
		    <count min="1" max="1">
		      <c>N</c>
		    </count>
		    <count min="1" max="1">
		      <c>F</c>
		    </count>
		  </seq>
		</or>
		<seq>
		  <count min="1" max="1">
		    <c>N</c>
		  </count>
		  <count min="1" max="1">
		    <c>a</c>
		  </count>
		  <count min="1" max="1">
		    <c>N</c>
		  </count>
		</seq>
	      </or>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="duration">
    <xsd:restriction>
      <xsd:simpleType>
	<xsd:restriction>
	  <xsd:simpleType>
	    <xsd:restriction base="xsd:string">
	      <xsd:pattern
		  value="-?P([0-9]+Y)?([0-9]+M)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\.[0-9]+)?S)?)?">
		<xsd:annotation>
		  <xsd:appinfo
		      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
		      rpt:app="Prolog regex parser"
		      rpt:parsecount="1">
		    <ast grammar="W2">
		      <seq>
			<count min="0" max="1">
			  <c>-</c>
			</count>
			<count min="1" max="1">
			  <c>P</c>
			</count>
			<count min="0" max="1">
			  <re>
			    <seq>
			      <count min="1" max="unbounded">
				<charClass>
				  <any_of>
				    <simple_range from="0" to="9"/>
				  </any_of>
				</charClass>
			      </count>
			      <count min="1" max="1">
				<c>Y</c>
			      </count>
			    </seq>
			  </re>
			</count>
			<count min="0" max="1">
			  <re>
			    <seq>
			      <count min="1" max="unbounded">
				<charClass>
				  <any_of>
				    <simple_range from="0" to="9"/>
				  </any_of>
				</charClass>
			      </count>
			      <count min="1" max="1">
				<c>M</c>
			      </count>
			    </seq>
			  </re>
			</count>
			<count min="0" max="1">
			  <re>
			    <seq>
			      <count min="1" max="unbounded">
				<charClass>
				  <any_of>
				    <simple_range from="0" to="9"/>
				  </any_of>
				</charClass>
			      </count>
			      <count min="1" max="1">
				<c>D</c>
			      </count>
			    </seq>
			  </re>
			</count>
			<count min="0" max="1">
			  <re>
			    <seq>
			      <count min="1" max="1">
				<c>T</c>
			      </count>
			      <count min="0" max="1">
				<re>
				  <seq>
				    <count min="1" max="unbounded">
				      <charClass>
					<any_of>
					  <simple_range from="0" to="9"/>
					</any_of>
				      </charClass>
				    </count>
				    <count min="1" max="1">
				      <c>H</c>
				    </count>
				  </seq>
				</re>
			      </count>
			      <count min="0" max="1">
				<re>
				  <seq>
				    <count min="1" max="unbounded">
				      <charClass>
					<any_of>
					  <simple_range from="0" to="9"/>
					</any_of>
				      </charClass>
				    </count>
				    <count min="1" max="1">
				      <c>M</c>
				    </count>
				  </seq>
				</re>
			      </count>
			      <count min="0" max="1">
				<re>
				  <seq>
				    <count min="1" max="unbounded">
				      <charClass>
					<any_of>
					  <simple_range from="0" to="9"/>
					</any_of>
				      </charClass>
				    </count>
				    <count min="0" max="1">
				      <re>
					<seq>
					  <count min="1" max="1">
					    <charClass>
					      <sce>.</sce>
					    </charClass>
					  </count>
					  <count min="1" max="unbounded">
					    <charClass>
					      <any_of>
						<simple_range from="0" to="9"/>
					      </any_of>
					    </charClass>
					  </count>
					</seq>
				      </re>
				    </count>
				    <count min="1" max="1">
				      <c>S</c>
				    </count>
				  </seq>
				</re>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		    </ast>
		  </xsd:appinfo>
		</xsd:annotation>
	      </xsd:pattern>
	    </xsd:restriction>
	  </xsd:simpleType>
	  <xsd:pattern value=".*[YMDHS].*">
	    <xsd:annotation>
	      <xsd:appinfo
		  xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
		  rpt:app="Prolog regex parser"
		  rpt:parsecount="1">
		<ast grammar="W2">
		  <seq>
		    <count min="0" max="unbounded">
		      <charClass>
			<mce kw="anycharacter_but_nl"/>
		      </charClass>
		    </count>
		    <count min="1" max="1">
		      <charClass>
			<any_of>
			  <c>Y</c>
			  <c>M</c>
			  <c>D</c>
			  <c>H</c>
			  <c>S</c>
			</any_of>
		      </charClass>
		    </count>
		    <count min="0" max="unbounded">
		      <charClass>
			<mce kw="anycharacter_but_nl"/>
		      </charClass>
		    </count>
		  </seq>
		</ast>
	      </xsd:appinfo>
	    </xsd:annotation>
	  </xsd:pattern>
	</xsd:restriction>
      </xsd:simpleType>
      <xsd:pattern value=".*[^T]">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="0" max="unbounded">
		  <charClass>
		    <mce kw="anycharacter_but_nl"/>
		  </charClass>
		</count>
		<count min="1" max="1">
		  <charClass>
		    <none_of>
		      <c>T</c>
		    </none_of>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="duration2">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="-?P(([0-9]+Y)([0-9]+M)?([0-9]+D)?(T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S)))?|([0-9]+M)([0-9]+D)?(T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S)))?|([0-9]+D)?(T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S)))?|T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S)))">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="0" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <c>P</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <or>
			<or>
			  <seq>
			    <count min="1" max="1">
			      <re>
				<seq>
				  <count min="1" max="unbounded">
				    <charClass>
				      <any_of>
					<simple_range from="0" to="9"/>
				      </any_of>
				    </charClass>
				  </count>
				  <count min="1" max="1">
				    <c>Y</c>
				  </count>
				</seq>
			      </re>
			    </count>
			    <count min="0" max="1">
			      <re>
				<seq>
				  <count min="1" max="unbounded">
				    <charClass>
				      <any_of>
					<simple_range from="0" to="9"/>
				      </any_of>
				    </charClass>
				  </count>
				  <count min="1" max="1">
				    <c>M</c>
				  </count>
				</seq>
			      </re>
			    </count>
			    <count min="0" max="1">
			      <re>
				<seq>
				  <count min="1" max="unbounded">
				    <charClass>
				      <any_of>
					<simple_range from="0" to="9"/>
				      </any_of>
				    </charClass>
				  </count>
				  <count min="1" max="1">
				    <c>D</c>
				  </count>
				</seq>
			      </re>
			    </count>
			    <count min="0" max="1">
			      <re>
				<seq>
				  <count min="1" max="1">
				    <c>T</c>
				  </count>
				  <count min="1" max="1">
				    <re>
				      <or>
					<or>
					  <seq>
					    <count min="1" max="1">
					      <re>
						<seq>
						  <count min="1" max="unbounded">
						    <charClass>
						      <any_of>
							<simple_range from="0" to="9"/>
						      </any_of>
						    </charClass>
						  </count>
						  <count min="1" max="1">
						    <c>H</c>
						  </count>
						</seq>
					      </re>
					    </count>
					    <count min="0" max="1">
					      <re>
						<seq>
						  <count min="1" max="unbounded">
						    <charClass>
						      <any_of>
							<simple_range from="0" to="9"/>
						      </any_of>
						    </charClass>
						  </count>
						  <count min="1" max="1">
						    <c>M</c>
						  </count>
						</seq>
					      </re>
					    </count>
					    <count min="0" max="1">
					      <re>
						<seq>
						  <count min="1" max="unbounded">
						    <charClass>
						      <any_of>
							<simple_range from="0" to="9"/>
						      </any_of>
						    </charClass>
						  </count>
						  <count min="0" max="1">
						    <re>
						      <seq>
							<count min="1" max="1">
							  <charClass>
							    <sce>.</sce>
							  </charClass>
							</count>
							<count min="1" max="unbounded">
							  <charClass>
							    <any_of>
							      <simple_range from="0" to="9"/>
							    </any_of>
							  </charClass>
							</count>
						      </seq>
						    </re>
						  </count>
						  <count min="1" max="1">
						    <c>S</c>
						  </count>
						</seq>
					      </re>
					    </count>
					  </seq>
					  <seq>
					    <count min="0" max="1">
					      <re>
						<seq>
						  <count min="1" max="unbounded">
						    <charClass>
						      <any_of>
							<simple_range from="0" to="9"/>
						      </any_of>
						    </charClass>
						  </count>
						  <count min="1" max="1">
						    <c>M</c>
						  </count>
						</seq>
					      </re>
					    </count>
					    <count min="0" max="1">
					      <re>
						<seq>
						  <count min="1" max="unbounded">
						    <charClass>
						      <any_of>
							<simple_range from="0" to="9"/>
						      </any_of>
						    </charClass>
						  </count>
						  <count min="0" max="1">
						    <re>
						      <seq>
							<count min="1" max="1">
							  <charClass>
							    <sce>.</sce>
							  </charClass>
							</count>
							<count min="1" max="unbounded">
							  <charClass>
							    <any_of>
							      <simple_range from="0" to="9"/>
							    </any_of>
							  </charClass>
							</count>
						      </seq>
						    </re>
						  </count>
						  <count min="1" max="1">
						    <c>S</c>
						  </count>
						</seq>
					      </re>
					    </count>
					  </seq>
					</or>
					<seq>
					  <count min="1" max="1">
					    <re>
					      <seq>
						<count min="1" max="unbounded">
						  <charClass>
						    <any_of>
						      <simple_range from="0" to="9"/>
						    </any_of>
						  </charClass>
						</count>
						<count min="0" max="1">
						  <re>
						    <seq>
						      <count min="1" max="1">
							<charClass>
							  <sce>.</sce>
							</charClass>
						      </count>
						      <count min="1" max="unbounded">
							<charClass>
							  <any_of>
							    <simple_range from="0" to="9"/>
							  </any_of>
							</charClass>
						      </count>
						    </seq>
						  </re>
						</count>
						<count min="1" max="1">
						  <c>S</c>
						</count>
					      </seq>
					    </re>
					  </count>
					</seq>
				      </or>
				    </re>
				  </count>
				</seq>
			      </re>
			    </count>
			  </seq>
			  <seq>
			    <count min="1" max="1">
			      <re>
				<seq>
				  <count min="1" max="unbounded">
				    <charClass>
				      <any_of>
					<simple_range from="0" to="9"/>
				      </any_of>
				    </charClass>
				  </count>
				  <count min="1" max="1">
				    <c>M</c>
				  </count>
				</seq>
			      </re>
			    </count>
			    <count min="0" max="1">
			      <re>
				<seq>
				  <count min="1" max="unbounded">
				    <charClass>
				      <any_of>
					<simple_range from="0" to="9"/>
				      </any_of>
				    </charClass>
				  </count>
				  <count min="1" max="1">
				    <c>D</c>
				  </count>
				</seq>
			      </re>
			    </count>
			    <count min="0" max="1">
			      <re>
				<seq>
				  <count min="1" max="1">
				    <c>T</c>
				  </count>
				  <count min="1" max="1">
				    <re>
				      <or>
					<or>
					  <seq>
					    <count min="1" max="1">
					      <re>
						<seq>
						  <count min="1" max="unbounded">
						    <charClass>
						      <any_of>
							<simple_range from="0" to="9"/>
						      </any_of>
						    </charClass>
						  </count>
						  <count min="1" max="1">
						    <c>H</c>
						  </count>
						</seq>
					      </re>
					    </count>
					    <count min="0" max="1">
					      <re>
						<seq>
						  <count min="1" max="unbounded">
						    <charClass>
						      <any_of>
							<simple_range from="0" to="9"/>
						      </any_of>
						    </charClass>
						  </count>
						  <count min="1" max="1">
						    <c>M</c>
						  </count>
						</seq>
					      </re>
					    </count>
					    <count min="0" max="1">
					      <re>
						<seq>
						  <count min="1" max="unbounded">
						    <charClass>
						      <any_of>
							<simple_range from="0" to="9"/>
						      </any_of>
						    </charClass>
						  </count>
						  <count min="0" max="1">
						    <re>
						      <seq>
							<count min="1" max="1">
							  <charClass>
							    <sce>.</sce>
							  </charClass>
							</count>
							<count min="1" max="unbounded">
							  <charClass>
							    <any_of>
							      <simple_range from="0" to="9"/>
							    </any_of>
							  </charClass>
							</count>
						      </seq>
						    </re>
						  </count>
						  <count min="1" max="1">
						    <c>S</c>
						  </count>
						</seq>
					      </re>
					    </count>
					  </seq>
					  <seq>
					    <count min="0" max="1">
					      <re>
						<seq>
						  <count min="1" max="unbounded">
						    <charClass>
						      <any_of>
							<simple_range from="0" to="9"/>
						      </any_of>
						    </charClass>
						  </count>
						  <count min="1" max="1">
						    <c>M</c>
						  </count>
						</seq>
					      </re>
					    </count>
					    <count min="0" max="1">
					      <re>
						<seq>
						  <count min="1" max="unbounded">
						    <charClass>
						      <any_of>
							<simple_range from="0" to="9"/>
						      </any_of>
						    </charClass>
						  </count>
						  <count min="0" max="1">
						    <re>
						      <seq>
							<count min="1" max="1">
							  <charClass>
							    <sce>.</sce>
							  </charClass>
							</count>
							<count min="1" max="unbounded">
							  <charClass>
							    <any_of>
							      <simple_range from="0" to="9"/>
							    </any_of>
							  </charClass>
							</count>
						      </seq>
						    </re>
						  </count>
						  <count min="1" max="1">
						    <c>S</c>
						  </count>
						</seq>
					      </re>
					    </count>
					  </seq>
					</or>
					<seq>
					  <count min="1" max="1">
					    <re>
					      <seq>
						<count min="1" max="unbounded">
						  <charClass>
						    <any_of>
						      <simple_range from="0" to="9"/>
						    </any_of>
						  </charClass>
						</count>
						<count min="0" max="1">
						  <re>
						    <seq>
						      <count min="1" max="1">
							<charClass>
							  <sce>.</sce>
							</charClass>
						      </count>
						      <count min="1" max="unbounded">
							<charClass>
							  <any_of>
							    <simple_range from="0" to="9"/>
							  </any_of>
							</charClass>
						      </count>
						    </seq>
						  </re>
						</count>
						<count min="1" max="1">
						  <c>S</c>
						</count>
					      </seq>
					    </re>
					  </count>
					</seq>
				      </or>
				    </re>
				  </count>
				</seq>
			      </re>
			    </count>
			  </seq>
			</or>
			<seq>
			  <count min="0" max="1">
			    <re>
			      <seq>
				<count min="1" max="unbounded">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="9"/>
				    </any_of>
				  </charClass>
				</count>
				<count min="1" max="1">
				  <c>D</c>
				</count>
			      </seq>
			    </re>
			  </count>
			  <count min="0" max="1">
			    <re>
			      <seq>
				<count min="1" max="1">
				  <c>T</c>
				</count>
				<count min="1" max="1">
				  <re>
				    <or>
				      <or>
					<seq>
					  <count min="1" max="1">
					    <re>
					      <seq>
						<count min="1" max="unbounded">
						  <charClass>
						    <any_of>
						      <simple_range from="0" to="9"/>
						    </any_of>
						  </charClass>
						</count>
						<count min="1" max="1">
						  <c>H</c>
						</count>
					      </seq>
					    </re>
					  </count>
					  <count min="0" max="1">
					    <re>
					      <seq>
						<count min="1" max="unbounded">
						  <charClass>
						    <any_of>
						      <simple_range from="0" to="9"/>
						    </any_of>
						  </charClass>
						</count>
						<count min="1" max="1">
						  <c>M</c>
						</count>
					      </seq>
					    </re>
					  </count>
					  <count min="0" max="1">
					    <re>
					      <seq>
						<count min="1" max="unbounded">
						  <charClass>
						    <any_of>
						      <simple_range from="0" to="9"/>
						    </any_of>
						  </charClass>
						</count>
						<count min="0" max="1">
						  <re>
						    <seq>
						      <count min="1" max="1">
							<charClass>
							  <sce>.</sce>
							</charClass>
						      </count>
						      <count min="1" max="unbounded">
							<charClass>
							  <any_of>
							    <simple_range from="0" to="9"/>
							  </any_of>
							</charClass>
						      </count>
						    </seq>
						  </re>
						</count>
						<count min="1" max="1">
						  <c>S</c>
						</count>
					      </seq>
					    </re>
					  </count>
					</seq>
					<seq>
					  <count min="0" max="1">
					    <re>
					      <seq>
						<count min="1" max="unbounded">
						  <charClass>
						    <any_of>
						      <simple_range from="0" to="9"/>
						    </any_of>
						  </charClass>
						</count>
						<count min="1" max="1">
						  <c>M</c>
						</count>
					      </seq>
					    </re>
					  </count>
					  <count min="0" max="1">
					    <re>
					      <seq>
						<count min="1" max="unbounded">
						  <charClass>
						    <any_of>
						      <simple_range from="0" to="9"/>
						    </any_of>
						  </charClass>
						</count>
						<count min="0" max="1">
						  <re>
						    <seq>
						      <count min="1" max="1">
							<charClass>
							  <sce>.</sce>
							</charClass>
						      </count>
						      <count min="1" max="unbounded">
							<charClass>
							  <any_of>
							    <simple_range from="0" to="9"/>
							  </any_of>
							</charClass>
						      </count>
						    </seq>
						  </re>
						</count>
						<count min="1" max="1">
						  <c>S</c>
						</count>
					      </seq>
					    </re>
					  </count>
					</seq>
				      </or>
				      <seq>
					<count min="1" max="1">
					  <re>
					    <seq>
					      <count min="1" max="unbounded">
						<charClass>
						  <any_of>
						    <simple_range from="0" to="9"/>
						  </any_of>
						</charClass>
					      </count>
					      <count min="0" max="1">
						<re>
						  <seq>
						    <count min="1" max="1">
						      <charClass>
							<sce>.</sce>
						      </charClass>
						    </count>
						    <count min="1" max="unbounded">
						      <charClass>
							<any_of>
							  <simple_range from="0" to="9"/>
							</any_of>
						      </charClass>
						    </count>
						  </seq>
						</re>
					      </count>
					      <count min="1" max="1">
						<c>S</c>
					      </count>
					    </seq>
					  </re>
					</count>
				      </seq>
				    </or>
				  </re>
				</count>
			      </seq>
			    </re>
			  </count>
			</seq>
		      </or>
		      <seq>
			<count min="1" max="1">
			  <c>T</c>
			</count>
			<count min="1" max="1">
			  <re>
			    <or>
			      <or>
				<seq>
				  <count min="1" max="1">
				    <re>
				      <seq>
					<count min="1" max="unbounded">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="9"/>
					    </any_of>
					  </charClass>
					</count>
					<count min="1" max="1">
					  <c>H</c>
					</count>
				      </seq>
				    </re>
				  </count>
				  <count min="0" max="1">
				    <re>
				      <seq>
					<count min="1" max="unbounded">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="9"/>
					    </any_of>
					  </charClass>
					</count>
					<count min="1" max="1">
					  <c>M</c>
					</count>
				      </seq>
				    </re>
				  </count>
				  <count min="0" max="1">
				    <re>
				      <seq>
					<count min="1" max="unbounded">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="9"/>
					    </any_of>
					  </charClass>
					</count>
					<count min="0" max="1">
					  <re>
					    <seq>
					      <count min="1" max="1">
						<charClass>
						  <sce>.</sce>
						</charClass>
					      </count>
					      <count min="1" max="unbounded">
						<charClass>
						  <any_of>
						    <simple_range from="0" to="9"/>
						  </any_of>
						</charClass>
					      </count>
					    </seq>
					  </re>
					</count>
					<count min="1" max="1">
					  <c>S</c>
					</count>
				      </seq>
				    </re>
				  </count>
				</seq>
				<seq>
				  <count min="0" max="1">
				    <re>
				      <seq>
					<count min="1" max="unbounded">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="9"/>
					    </any_of>
					  </charClass>
					</count>
					<count min="1" max="1">
					  <c>M</c>
					</count>
				      </seq>
				    </re>
				  </count>
				  <count min="0" max="1">
				    <re>
				      <seq>
					<count min="1" max="unbounded">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="9"/>
					    </any_of>
					  </charClass>
					</count>
					<count min="0" max="1">
					  <re>
					    <seq>
					      <count min="1" max="1">
						<charClass>
						  <sce>.</sce>
						</charClass>
					      </count>
					      <count min="1" max="unbounded">
						<charClass>
						  <any_of>
						    <simple_range from="0" to="9"/>
						  </any_of>
						</charClass>
					      </count>
					    </seq>
					  </re>
					</count>
					<count min="1" max="1">
					  <c>S</c>
					</count>
				      </seq>
				    </re>
				  </count>
				</seq>
			      </or>
			      <seq>
				<count min="1" max="1">
				  <re>
				    <seq>
				      <count min="1" max="unbounded">
					<charClass>
					  <any_of>
					    <simple_range from="0" to="9"/>
					  </any_of>
					</charClass>
				      </count>
				      <count min="0" max="1">
					<re>
					  <seq>
					    <count min="1" max="1">
					      <charClass>
						<sce>.</sce>
					      </charClass>
					    </count>
					    <count min="1" max="unbounded">
					      <charClass>
						<any_of>
						  <simple_range from="0" to="9"/>
						</any_of>
					      </charClass>
					    </count>
					  </seq>
					</re>
				      </count>
				      <count min="1" max="1">
					<c>S</c>
				      </count>
				    </seq>
				  </re>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="dateTime">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?|(24:00:00(\.0+)?))(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?|(24:00:00(\.0+)?))(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="0" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="1" to="9"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="3" max="unbounded">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <c>0</c>
			</count>
			<count min="3" max="3">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="1" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <c>0</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="1" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <c>1</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="2"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="1" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <or>
			<seq>
			  <count min="1" max="1">
			    <c>0</c>
			  </count>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<simple_range from="1" to="9"/>
			      </any_of>
			    </charClass>
			  </count>
			</seq>
			<seq>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<c>1</c>
				<c>2</c>
			      </any_of>
			    </charClass>
			  </count>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<simple_range from="0" to="9"/>
			      </any_of>
			    </charClass>
			  </count>
			</seq>
		      </or>
		      <seq>
			<count min="1" max="1">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <c>0</c>
			      <c>1</c>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="1" max="1">
		  <c>T</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <c>0</c>
				      <c>1</c>
				    </any_of>
				  </charClass>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="9"/>
				    </any_of>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>2</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="3"/>
				    </any_of>
				  </charClass>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
			<count min="1" max="1">
			  <c>:</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="5"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <c>:</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="5"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="0" max="1">
			  <re>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <sce>.</sce>
				</charClass>
			      </count>
			      <count min="1" max="unbounded">
				<charClass>
				  <any_of>
				    <simple_range from="0" to="9"/>
				  </any_of>
				</charClass>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <seq>
			      <count min="1" max="1">
				<c>2</c>
			      </count>
			      <count min="1" max="1">
				<c>4</c>
			      </count>
			      <count min="1" max="1">
				<c>:</c>
			      </count>
			      <count min="1" max="1">
				<c>0</c>
			      </count>
			      <count min="1" max="1">
				<c>0</c>
			      </count>
			      <count min="1" max="1">
				<c>:</c>
			      </count>
			      <count min="1" max="1">
				<c>0</c>
			      </count>
			      <count min="1" max="1">
				<c>0</c>
			      </count>
			      <count min="0" max="1">
				<re>
				  <seq>
				    <count min="1" max="1">
				      <charClass>
					<sce>.</sce>
				      </charClass>
				    </count>
				    <count min="1" max="unbounded">
				      <c>0</c>
				    </count>
				  </seq>
				</re>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="0" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <c>Z</c>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <charClass>
				    <sce>+</sce>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>-</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <re>
				    <or>
				      <seq>
					<count min="1" max="1">
					  <c>0</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="9"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				      <seq>
					<count min="1" max="1">
					  <c>1</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="3"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				    </or>
				  </re>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="5"/>
				    </any_of>
				  </charClass>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="9"/>
				    </any_of>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>1</c>
				</count>
				<count min="1" max="1">
				  <c>4</c>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="0" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="1" to="9"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="3" max="unbounded">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <c>0</c>
			</count>
			<count min="3" max="3">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="1" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <c>0</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="1" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <c>1</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="2"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="1" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <or>
			<seq>
			  <count min="1" max="1">
			    <c>0</c>
			  </count>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<simple_range from="1" to="9"/>
			      </any_of>
			    </charClass>
			  </count>
			</seq>
			<seq>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<c>1</c>
				<c>2</c>
			      </any_of>
			    </charClass>
			  </count>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<simple_range from="0" to="9"/>
			      </any_of>
			    </charClass>
			  </count>
			</seq>
		      </or>
		      <seq>
			<count min="1" max="1">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <c>0</c>
			      <c>1</c>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="1" max="1">
		  <c>T</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <c>0</c>
				      <c>1</c>
				    </any_of>
				  </charClass>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="9"/>
				    </any_of>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>2</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="3"/>
				    </any_of>
				  </charClass>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
			<count min="1" max="1">
			  <c>:</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="5"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <c>:</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="5"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="0" max="1">
			  <re>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <sce>.</sce>
				</charClass>
			      </count>
			      <count min="1" max="unbounded">
				<charClass>
				  <any_of>
				    <simple_range from="0" to="9"/>
				  </any_of>
				</charClass>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <seq>
			      <count min="1" max="1">
				<c>2</c>
			      </count>
			      <count min="1" max="1">
				<c>4</c>
			      </count>
			      <count min="1" max="1">
				<c>:</c>
			      </count>
			      <count min="1" max="1">
				<c>0</c>
			      </count>
			      <count min="1" max="1">
				<c>0</c>
			      </count>
			      <count min="1" max="1">
				<c>:</c>
			      </count>
			      <count min="1" max="1">
				<c>0</c>
			      </count>
			      <count min="1" max="1">
				<c>0</c>
			      </count>
			      <count min="0" max="1">
				<re>
				  <seq>
				    <count min="1" max="1">
				      <charClass>
					<sce>.</sce>
				      </charClass>
				    </count>
				    <count min="1" max="unbounded">
				      <c>0</c>
				    </count>
				  </seq>
				</re>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="0" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <c>Z</c>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <charClass>
				    <sce>+</sce>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>-</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <re>
				    <or>
				      <seq>
					<count min="1" max="1">
					  <c>0</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="9"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				      <seq>
					<count min="1" max="1">
					  <c>1</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="3"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				    </or>
				  </re>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="5"/>
				    </any_of>
				  </charClass>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="9"/>
				    </any_of>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>1</c>
				</count>
				<count min="1" max="1">
				  <c>4</c>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="time">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?|(24:00:00(\.0+)?))(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <c>0</c>
				      <c>1</c>
				    </any_of>
				  </charClass>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="9"/>
				    </any_of>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>2</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="3"/>
				    </any_of>
				  </charClass>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
			<count min="1" max="1">
			  <c>:</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="5"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <c>:</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="5"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="0" max="1">
			  <re>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <sce>.</sce>
				</charClass>
			      </count>
			      <count min="1" max="unbounded">
				<charClass>
				  <any_of>
				    <simple_range from="0" to="9"/>
				  </any_of>
				</charClass>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <seq>
			      <count min="1" max="1">
				<c>2</c>
			      </count>
			      <count min="1" max="1">
				<c>4</c>
			      </count>
			      <count min="1" max="1">
				<c>:</c>
			      </count>
			      <count min="1" max="1">
				<c>0</c>
			      </count>
			      <count min="1" max="1">
				<c>0</c>
			      </count>
			      <count min="1" max="1">
				<c>:</c>
			      </count>
			      <count min="1" max="1">
				<c>0</c>
			      </count>
			      <count min="1" max="1">
				<c>0</c>
			      </count>
			      <count min="0" max="1">
				<re>
				  <seq>
				    <count min="1" max="1">
				      <charClass>
					<sce>.</sce>
				      </charClass>
				    </count>
				    <count min="1" max="unbounded">
				      <c>0</c>
				    </count>
				  </seq>
				</re>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="0" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <c>Z</c>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <charClass>
				    <sce>+</sce>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>-</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <re>
				    <or>
				      <seq>
					<count min="1" max="1">
					  <c>0</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="9"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				      <seq>
					<count min="1" max="1">
					  <c>1</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="3"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				    </or>
				  </re>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="5"/>
				    </any_of>
				  </charClass>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="9"/>
				    </any_of>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>1</c>
				</count>
				<count min="1" max="1">
				  <c>4</c>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="date">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="0" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="1" to="9"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="3" max="unbounded">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <c>0</c>
			</count>
			<count min="3" max="3">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="1" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <c>0</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="1" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <c>1</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="2"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="1" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <or>
			<seq>
			  <count min="1" max="1">
			    <c>0</c>
			  </count>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<simple_range from="1" to="9"/>
			      </any_of>
			    </charClass>
			  </count>
			</seq>
			<seq>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<c>1</c>
				<c>2</c>
			      </any_of>
			    </charClass>
			  </count>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<simple_range from="0" to="9"/>
			      </any_of>
			    </charClass>
			  </count>
			</seq>
		      </or>
		      <seq>
			<count min="1" max="1">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <c>0</c>
			      <c>1</c>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="0" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <c>Z</c>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <charClass>
				    <sce>+</sce>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>-</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <re>
				    <or>
				      <seq>
					<count min="1" max="1">
					  <c>0</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="9"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				      <seq>
					<count min="1" max="1">
					  <c>1</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="3"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				    </or>
				  </re>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="5"/>
				    </any_of>
				  </charClass>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="9"/>
				    </any_of>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>1</c>
				</count>
				<count min="1" max="1">
				  <c>4</c>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gYearMonth">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="0" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="1" to="9"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="3" max="unbounded">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <c>0</c>
			</count>
			<count min="3" max="3">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="1" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <c>0</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="1" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <c>1</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="2"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="0" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <c>Z</c>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <charClass>
				    <sce>+</sce>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>-</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <re>
				    <or>
				      <seq>
					<count min="1" max="1">
					  <c>0</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="9"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				      <seq>
					<count min="1" max="1">
					  <c>1</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="3"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				    </or>
				  </re>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="5"/>
				    </any_of>
				  </charClass>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="9"/>
				    </any_of>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>1</c>
				</count>
				<count min="1" max="1">
				  <c>4</c>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gYear">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="-?([1-9][0-9]{3,}|0[0-9]{3})(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="0" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="1" to="9"/>
			    </any_of>
			  </charClass>
			</count>
			<count min="3" max="unbounded">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <c>0</c>
			</count>
			<count min="3" max="3">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="0" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <c>Z</c>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <charClass>
				    <sce>+</sce>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>-</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <re>
				    <or>
				      <seq>
					<count min="1" max="1">
					  <c>0</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="9"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				      <seq>
					<count min="1" max="1">
					  <c>1</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="3"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				    </or>
				  </re>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="5"/>
				    </any_of>
				  </charClass>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="9"/>
				    </any_of>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>1</c>
				</count>
				<count min="1" max="1">
				  <c>4</c>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gMonthDay">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="--(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <c>0</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="1" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <c>1</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="2"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="1" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <or>
			<seq>
			  <count min="1" max="1">
			    <c>0</c>
			  </count>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<simple_range from="1" to="9"/>
			      </any_of>
			    </charClass>
			  </count>
			</seq>
			<seq>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<c>1</c>
				<c>2</c>
			      </any_of>
			    </charClass>
			  </count>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<simple_range from="0" to="9"/>
			      </any_of>
			    </charClass>
			  </count>
			</seq>
		      </or>
		      <seq>
			<count min="1" max="1">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <c>0</c>
			      <c>1</c>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="0" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <c>Z</c>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <charClass>
				    <sce>+</sce>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>-</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <re>
				    <or>
				      <seq>
					<count min="1" max="1">
					  <c>0</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="9"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				      <seq>
					<count min="1" max="1">
					  <c>1</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="3"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				    </or>
				  </re>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="5"/>
				    </any_of>
				  </charClass>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="9"/>
				    </any_of>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>1</c>
				</count>
				<count min="1" max="1">
				  <c>4</c>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gDay">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="---(0[1-9]|[12][0-9]|3[01])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <or>
			<seq>
			  <count min="1" max="1">
			    <c>0</c>
			  </count>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<simple_range from="1" to="9"/>
			      </any_of>
			    </charClass>
			  </count>
			</seq>
			<seq>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<c>1</c>
				<c>2</c>
			      </any_of>
			    </charClass>
			  </count>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<simple_range from="0" to="9"/>
			      </any_of>
			    </charClass>
			  </count>
			</seq>
		      </or>
		      <seq>
			<count min="1" max="1">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <c>0</c>
			      <c>1</c>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="0" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <c>Z</c>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <charClass>
				    <sce>+</sce>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>-</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <re>
				    <or>
				      <seq>
					<count min="1" max="1">
					  <c>0</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="9"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				      <seq>
					<count min="1" max="1">
					  <c>1</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="3"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				    </or>
				  </re>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="5"/>
				    </any_of>
				  </charClass>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="9"/>
				    </any_of>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>1</c>
				</count>
				<count min="1" max="1">
				  <c>4</c>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gMonth">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="--(0[1-9]|1[0-2])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <c>0</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="1" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <c>1</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="2"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="0" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <c>Z</c>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <charClass>
				    <sce>+</sce>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>-</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
			<count min="1" max="1">
			  <re>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <re>
				    <or>
				      <seq>
					<count min="1" max="1">
					  <c>0</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="9"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				      <seq>
					<count min="1" max="1">
					  <c>1</c>
					</count>
					<count min="1" max="1">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="3"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				    </or>
				  </re>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="5"/>
				    </any_of>
				  </charClass>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="9"/>
				    </any_of>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="1" max="1">
				  <c>1</c>
				</count>
				<count min="1" max="1">
				  <c>4</c>
				</count>
				<count min="1" max="1">
				  <c>:</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
				<count min="1" max="1">
				  <c>0</c>
				</count>
			      </seq>
			    </or>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="hexBinary">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="([0-9a-fA-F]{2})*">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="0" max="unbounded">
		  <re>
		    <seq>
		      <count min="2" max="2">
			<charClass>
			  <any_of>
			    <simple_range from="0" to="9"/>
			    <simple_range from="a" to="f"/>
			    <simple_range from="A" to="F"/>
			  </any_of>
			</charClass>
		      </count>
		    </seq>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="base64Binary">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="((([A-Za-z0-9+/] ?){4})*(([A-Za-z0-9+/] ?){3}[A-Za-z0-9+/]|([A-Za-z0-9+/] ?){2}[AEIMQUYcgkosw048] ?=|[A-Za-z0-9+/] ?[AQgw] ?= ?=))?">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="0" max="1">
		  <re>
		    <seq>
		      <count min="0" max="unbounded">
			<re>
			  <seq>
			    <count min="4" max="4">
			      <re>
				<seq>
				  <count min="1" max="1">
				    <charClass>
				      <any_of>
					<simple_range from="A" to="Z"/>
					<simple_range from="a" to="z"/>
					<simple_range from="0" to="9"/>
					<c>+</c>
					<c>/</c>
				      </any_of>
				    </charClass>
				  </count>
				  <count min="0" max="1">
				    <c> </c>
				  </count>
				</seq>
			      </re>
			    </count>
			  </seq>
			</re>
		      </count>
		      <count min="1" max="1">
			<re>
			  <or>
			    <or>
			      <seq>
				<count min="3" max="3">
				  <re>
				    <seq>
				      <count min="1" max="1">
					<charClass>
					  <any_of>
					    <simple_range from="A" to="Z"/>
					    <simple_range from="a" to="z"/>
					    <simple_range from="0" to="9"/>
					    <c>+</c>
					    <c>/</c>
					  </any_of>
					</charClass>
				      </count>
				      <count min="0" max="1">
					<c> </c>
				      </count>
				    </seq>
				  </re>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="A" to="Z"/>
				      <simple_range from="a" to="z"/>
				      <simple_range from="0" to="9"/>
				      <c>+</c>
				      <c>/</c>
				    </any_of>
				  </charClass>
				</count>
			      </seq>
			      <seq>
				<count min="2" max="2">
				  <re>
				    <seq>
				      <count min="1" max="1">
					<charClass>
					  <any_of>
					    <simple_range from="A" to="Z"/>
					    <simple_range from="a" to="z"/>
					    <simple_range from="0" to="9"/>
					    <c>+</c>
					    <c>/</c>
					  </any_of>
					</charClass>
				      </count>
				      <count min="0" max="1">
					<c> </c>
				      </count>
				    </seq>
				  </re>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <c>A</c>
				      <c>E</c>
				      <c>I</c>
				      <c>M</c>
				      <c>Q</c>
				      <c>U</c>
				      <c>Y</c>
				      <c>c</c>
				      <c>g</c>
				      <c>k</c>
				      <c>o</c>
				      <c>s</c>
				      <c>w</c>
				      <c>0</c>
				      <c>4</c>
				      <c>8</c>
				    </any_of>
				  </charClass>
				</count>
				<count min="0" max="1">
				  <c> </c>
				</count>
				<count min="1" max="1">
				  <c>=</c>
				</count>
			      </seq>
			    </or>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <simple_range from="A" to="Z"/>
				    <simple_range from="a" to="z"/>
				    <simple_range from="0" to="9"/>
				    <c>+</c>
				    <c>/</c>
				  </any_of>
				</charClass>
			      </count>
			      <count min="0" max="1">
				<c> </c>
			      </count>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>A</c>
				    <c>Q</c>
				    <c>g</c>
				    <c>w</c>
				  </any_of>
				</charClass>
			      </count>
			      <count min="0" max="1">
				<c> </c>
			      </count>
			      <count min="1" max="1">
				<c>=</c>
			      </count>
			      <count min="0" max="1">
				<c> </c>
			      </count>
			      <count min="1" max="1">
				<c>=</c>
			      </count>
			    </seq>
			  </or>
			</re>
		      </count>
		    </seq>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="anyURI">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="not given">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <c>n</c>
		</count>
		<count min="1" max="1">
		  <c>o</c>
		</count>
		<count min="1" max="1">
		  <c>t</c>
		</count>
		<count min="1" max="1">
		  <c> </c>
		</count>
		<count min="1" max="1">
		  <c>g</c>
		</count>
		<count min="1" max="1">
		  <c>i</c>
		</count>
		<count min="1" max="1">
		  <c>v</c>
		</count>
		<count min="1" max="1">
		  <c>e</c>
		</count>
		<count min="1" max="1">
		  <c>n</c>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="QName">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="xxx">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <c>x</c>
		</count>
		<count min="1" max="1">
		  <c>x</c>
		</count>
		<count min="1" max="1">
		  <c>x</c>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="NOTATION">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="xxx">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <c>x</c>
		</count>
		<count min="1" max="1">
		  <c>x</c>
		</count>
		<count min="1" max="1">
		  <c>x</c>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="normalizedString">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="xxx">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <c>x</c>
		</count>
		<count min="1" max="1">
		  <c>x</c>
		</count>
		<count min="1" max="1">
		  <c>x</c>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="token">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="xxx">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <c>x</c>
		</count>
		<count min="1" max="1">
		  <c>x</c>
		</count>
		<count min="1" max="1">
		  <c>x</c>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="language">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="8">
		  <charClass>
		    <any_of>
		      <simple_range from="a" to="z"/>
		      <simple_range from="A" to="Z"/>
		    </any_of>
		  </charClass>
		</count>
		<count min="0" max="unbounded">
		  <re>
		    <seq>
		      <count min="1" max="1">
			<c>-</c>
		      </count>
		      <count min="1" max="8">
			<charClass>
			  <any_of>
			    <simple_range from="a" to="z"/>
			    <simple_range from="A" to="Z"/>
			    <simple_range from="0" to="9"/>
			  </any_of>
			</charClass>
		      </count>
		    </seq>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="NMTOKEN">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\c+">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="unbounded">
		  <charClass>
		    <mce kw="namechar"/>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="NMTOKENS">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="xxx">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <c>x</c>
		</count>
		<count min="1" max="1">
		  <c>x</c>
		</count>
		<count min="1" max="1">
		  <c>x</c>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="Name">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\i\c*">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <charClass>
		    <mce kw="nameStart"/>
		  </charClass>
		</count>
		<count min="0" max="unbounded">
		  <charClass>
		    <mce kw="namechar"/>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="NCName">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\i\c*">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <charClass>
		    <mce kw="nameStart"/>
		  </charClass>
		</count>
		<count min="0" max="unbounded">
		  <charClass>
		    <mce kw="namechar"/>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
      <xsd:pattern value="[\i-[:]][\c-[:]]*">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <charClass>
		    <difference>
		      <any_of>
			<mce kw="nameStart"/>
		      </any_of>
		      <any_of>
			<c>:</c>
		      </any_of>
		    </difference>
		  </charClass>
		</count>
		<count min="0" max="unbounded">
		  <charClass>
		    <difference>
		      <any_of>
			<mce kw="namechar"/>
		      </any_of>
		      <any_of>
			<c>:</c>
		      </any_of>
		    </difference>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ID">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\i\c*">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <charClass>
		    <mce kw="nameStart"/>
		  </charClass>
		</count>
		<count min="0" max="unbounded">
		  <charClass>
		    <mce kw="namechar"/>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
      <xsd:pattern value="[\i-[:]][\c-[:]]*">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <charClass>
		    <difference>
		      <any_of>
			<mce kw="nameStart"/>
		      </any_of>
		      <any_of>
			<c>:</c>
		      </any_of>
		    </difference>
		  </charClass>
		</count>
		<count min="0" max="unbounded">
		  <charClass>
		    <difference>
		      <any_of>
			<mce kw="namechar"/>
		      </any_of>
		      <any_of>
			<c>:</c>
		      </any_of>
		    </difference>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="IDREF">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\i\c*">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <charClass>
		    <mce kw="nameStart"/>
		  </charClass>
		</count>
		<count min="0" max="unbounded">
		  <charClass>
		    <mce kw="namechar"/>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
      <xsd:pattern value="[\i-[:]][\c-[:]]*">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <charClass>
		    <difference>
		      <any_of>
			<mce kw="nameStart"/>
		      </any_of>
		      <any_of>
			<c>:</c>
		      </any_of>
		    </difference>
		  </charClass>
		</count>
		<count min="0" max="unbounded">
		  <charClass>
		    <difference>
		      <any_of>
			<mce kw="namechar"/>
		      </any_of>
		      <any_of>
			<c>:</c>
		      </any_of>
		    </difference>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="IDREFS">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="xxx">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <c>x</c>
		</count>
		<count min="1" max="1">
		  <c>x</c>
		</count>
		<count min="1" max="1">
		  <c>x</c>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ENTITY">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\i\c*">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <charClass>
		    <mce kw="nameStart"/>
		  </charClass>
		</count>
		<count min="0" max="unbounded">
		  <charClass>
		    <mce kw="namechar"/>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
      <xsd:pattern value="[\i-[:]][\c-[:]]*">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <charClass>
		    <difference>
		      <any_of>
			<mce kw="nameStart"/>
		      </any_of>
		      <any_of>
			<c>:</c>
		      </any_of>
		    </difference>
		  </charClass>
		</count>
		<count min="0" max="unbounded">
		  <charClass>
		    <difference>
		      <any_of>
			<mce kw="namechar"/>
		      </any_of>
		      <any_of>
			<c>:</c>
		      </any_of>
		    </difference>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ENTITIES">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="xxx">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="1" max="1">
		  <c>x</c>
		</count>
		<count min="1" max="1">
		  <c>x</c>
		</count>
		<count min="1" max="1">
		  <c>x</c>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="integer">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[\-+]?[0-9]+">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2 W2">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <sce>-</sce>
		      <c>+</c>
		    </any_of>
		  </charClass>
		</count>
		<count min="1" max="unbounded">
		  <charClass>
		    <any_of>
		      <simple_range from="0" to="9"/>
		    </any_of>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="nonPositiveInteger">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[\-+]?[0-9]+">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2 W2">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <sce>-</sce>
		      <c>+</c>
		    </any_of>
		  </charClass>
		</count>
		<count min="1" max="unbounded">
		  <charClass>
		    <any_of>
		      <simple_range from="0" to="9"/>
		    </any_of>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="negativeInteger">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[\-+]?[0-9]+">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2 W2">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <sce>-</sce>
		      <c>+</c>
		    </any_of>
		  </charClass>
		</count>
		<count min="1" max="unbounded">
		  <charClass>
		    <any_of>
		      <simple_range from="0" to="9"/>
		    </any_of>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="long">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[\-+]?[0-9]+">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2 W2">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <sce>-</sce>
		      <c>+</c>
		    </any_of>
		  </charClass>
		</count>
		<count min="1" max="unbounded">
		  <charClass>
		    <any_of>
		      <simple_range from="0" to="9"/>
		    </any_of>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="int">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[\-+]?[0-9]+">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2 W2">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <sce>-</sce>
		      <c>+</c>
		    </any_of>
		  </charClass>
		</count>
		<count min="1" max="unbounded">
		  <charClass>
		    <any_of>
		      <simple_range from="0" to="9"/>
		    </any_of>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="short">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[\-+]?[0-9]+">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2 W2">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <sce>-</sce>
		      <c>+</c>
		    </any_of>
		  </charClass>
		</count>
		<count min="1" max="unbounded">
		  <charClass>
		    <any_of>
		      <simple_range from="0" to="9"/>
		    </any_of>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="byte">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value=" [\-+]?[0-9]+">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2 W2">
	      <seq>
		<count min="1" max="1">
		  <c> </c>
		</count>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <sce>-</sce>
		      <c>+</c>
		    </any_of>
		  </charClass>
		</count>
		<count min="1" max="unbounded">
		  <charClass>
		    <any_of>
		      <simple_range from="0" to="9"/>
		    </any_of>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="nonNegativeInteger">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[\-+]?[0-9]+">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2 W2">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <sce>-</sce>
		      <c>+</c>
		    </any_of>
		  </charClass>
		</count>
		<count min="1" max="unbounded">
		  <charClass>
		    <any_of>
		      <simple_range from="0" to="9"/>
		    </any_of>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="unsignedLong">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[\-+]?[0-9]+">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2 W2">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <sce>-</sce>
		      <c>+</c>
		    </any_of>
		  </charClass>
		</count>
		<count min="1" max="unbounded">
		  <charClass>
		    <any_of>
		      <simple_range from="0" to="9"/>
		    </any_of>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="unsignedInt">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[\-+]?[0-9]+">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2 W2">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <sce>-</sce>
		      <c>+</c>
		    </any_of>
		  </charClass>
		</count>
		<count min="1" max="unbounded">
		  <charClass>
		    <any_of>
		      <simple_range from="0" to="9"/>
		    </any_of>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="unsignedShort">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[\-+]?[0-9]+">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2 W2">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <sce>-</sce>
		      <c>+</c>
		    </any_of>
		  </charClass>
		</count>
		<count min="1" max="unbounded">
		  <charClass>
		    <any_of>
		      <simple_range from="0" to="9"/>
		    </any_of>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="unsignedByte">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[\-+]?[0-9]+">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2 W2">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <sce>-</sce>
		      <c>+</c>
		    </any_of>
		  </charClass>
		</count>
		<count min="1" max="unbounded">
		  <charClass>
		    <any_of>
		      <simple_range from="0" to="9"/>
		    </any_of>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="positiveInteger">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[\-+]?[0-9]+">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2 W2">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <sce>-</sce>
		      <c>+</c>
		    </any_of>
		  </charClass>
		</count>
		<count min="1" max="unbounded">
		  <charClass>
		    <any_of>
		      <simple_range from="0" to="9"/>
		    </any_of>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="yearMonthDuration">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="-?P((([0-9]+Y)([0-9]+M)?)|([0-9]+M))">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="0" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <c>P</c>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <seq>
			      <count min="1" max="1">
				<re>
				  <seq>
				    <count min="1" max="unbounded">
				      <charClass>
					<any_of>
					  <simple_range from="0" to="9"/>
					</any_of>
				      </charClass>
				    </count>
				    <count min="1" max="1">
				      <c>Y</c>
				    </count>
				  </seq>
				</re>
			      </count>
			      <count min="0" max="1">
				<re>
				  <seq>
				    <count min="1" max="unbounded">
				      <charClass>
					<any_of>
					  <simple_range from="0" to="9"/>
					</any_of>
				      </charClass>
				    </count>
				    <count min="1" max="1">
				      <c>M</c>
				    </count>
				  </seq>
				</re>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <seq>
			      <count min="1" max="unbounded">
				<charClass>
				  <any_of>
				    <simple_range from="0" to="9"/>
				  </any_of>
				</charClass>
			      </count>
			      <count min="1" max="1">
				<c>M</c>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
      <xsd:pattern value="-?P[0-9]+(Y([0-9]+M)?|M)">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="0" max="1">
		  <c>-</c>
		</count>
		<count min="1" max="1">
		  <c>P</c>
		</count>
		<count min="1" max="unbounded">
		  <charClass>
		    <any_of>
		      <simple_range from="0" to="9"/>
		    </any_of>
		  </charClass>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <c>Y</c>
			</count>
			<count min="0" max="1">
			  <re>
			    <seq>
			      <count min="1" max="unbounded">
				<charClass>
				  <any_of>
				    <simple_range from="0" to="9"/>
				  </any_of>
				</charClass>
			      </count>
			      <count min="1" max="1">
				<c>M</c>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <c>M</c>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
      <xsd:pattern value="[^DT]*">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="0" max="unbounded">
		  <charClass>
		    <none_of>
		      <c>D</c>
		      <c>T</c>
		    </none_of>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="dayTimeDuration">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[^YM]*[DT].*">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="0" max="unbounded">
		  <charClass>
		    <none_of>
		      <c>Y</c>
		      <c>M</c>
		    </none_of>
		  </charClass>
		</count>
		<count min="1" max="1">
		  <charClass>
		    <any_of>
		      <c>D</c>
		      <c>T</c>
		    </any_of>
		  </charClass>
		</count>
		<count min="0" max="unbounded">
		  <charClass>
		    <mce kw="anycharacter_but_nl"/>
		  </charClass>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="dayTimeDuration-bis">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[^YM]*(T.*)?">
	<xsd:annotation>
	  <xsd:appinfo
	      xmlns:rpt="http://www.w3.org/XML/2008/03/xsdl-regex/report"
	      rpt:app="Prolog regex parser"
	      rpt:parsecount="1">
	    <ast grammar="W2">
	      <seq>
		<count min="0" max="unbounded">
		  <charClass>
		    <none_of>
		      <c>Y</c>
		      <c>M</c>
		    </none_of>
		  </charClass>
		</count>
		<count min="0" max="1">
		  <re>
		    <seq>
		      <count min="1" max="1">
			<c>T</c>
		      </count>
		      <count min="0" max="unbounded">
			<charClass>
			  <mce kw="anycharacter_but_nl"/>
			</charClass>
		      </count>
		    </seq>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
</xsd:schema>