<?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"
    xmlns:tns="http://www.w3.org/XML/2008/xsdl-exx/ns1"
    targetNamespace="http://www.w3.org/XML/2008/xsdl-exx/ns1"
    elementFormDefault="qualified">
  <xsd:annotation>
    <xsd:documentation>
      <div xmlns="http://www.w3.org/1999/xhtml">
	<p>Sample schema for discussion and testing purposes. Includes the regexes given in the spec for each built-in datatype. 31 May 2008.</p>
      </div>
    </xsd:documentation>
    <xsd:appinfo/>
  </xsd:annotation>
  <xsd:simpleType name="string">
    <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 D8 2E PER 1E">
	      <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 D8 2E PER 1E">
	      <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 D8 2E PER 1E">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="decimal-lh">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="(\+|-)?((\d+(.\d*)?)|(.\d+))">
	<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 D8 2E PER 1E">
	      <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="1">
			  <re>
			    <seq>
			      <count min="1" max="unbounded">
				<charClass>
				  <mce kw="alldecimaldigits"/>
				</charClass>
			      </count>
			      <count min="0" max="1">
				<re>
				  <seq>
				    <count min="1" max="1">
				      <charClass>
					<mce kw="anycharacter_but_nl"/>
				      </charClass>
				    </count>
				    <count min="0" max="unbounded">
				      <charClass>
					<mce kw="alldecimaldigits"/>
				      </charClass>
				    </count>
				  </seq>
				</re>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <mce kw="anycharacter_but_nl"/>
				</charClass>
			      </count>
			      <count min="1" max="unbounded">
				<charClass>
				  <mce kw="alldecimaldigits"/>
				</charClass>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="decimal-lh-bis">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[+\-]?((\d+(\.\d*)?)|(\.\d+))">
	<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 D8 2E PER 1E">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <c>+</c>
		      <sce>-</sce>
		    </any_of>
		  </charClass>
		</count>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <seq>
			      <count min="1" max="unbounded">
				<charClass>
				  <mce kw="alldecimaldigits"/>
				</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>
					<mce kw="alldecimaldigits"/>
				      </charClass>
				    </count>
				  </seq>
				</re>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <sce>.</sce>
				</charClass>
			      </count>
			      <count min="1" max="unbounded">
				<charClass>
				  <mce kw="alldecimaldigits"/>
				</charClass>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="decimal-w3">
    <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="2">
	    <ast grammar="W2 D8 2E 1E">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <c>-</c>
		      <c>+</c>
		    </any_of>
		  </charClass>
		</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>
	    <ast grammar="PER">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="decimal-ed">
    <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 D8 2E PER 1E">
	      <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="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="0" max="unbounded">
				      <charClass>
					<any_of>
					  <simple_range from="0" to="9"/>
					</any_of>
				      </charClass>
				    </count>
				  </seq>
				</re>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		      <seq>
			<count min="1" 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>
		    </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="not-supplied">
	<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 D8 2E PER 1E">
	      <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>s</c>
		</count>
		<count min="1" max="1">
		  <c>u</c>
		</count>
		<count min="1" max="1">
		  <c>p</c>
		</count>
		<count min="1" max="1">
		  <c>p</c>
		</count>
		<count min="1" max="1">
		  <c>l</c>
		</count>
		<count min="1" max="1">
		  <c>i</c>
		</count>
		<count min="1" max="1">
		  <c>e</c>
		</count>
		<count min="1" max="1">
		  <c>d</c>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="precisionDecimal-w3">
    <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="2">
	    <ast grammar="W2 D8 2E 1E">
	      <or>
		<or>
		  <seq>
		    <count min="0" max="1">
		      <charClass>
			<any_of>
			  <c>-</c>
			  <c>+</c>
			</any_of>
		      </charClass>
		    </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">
			    <charClass>
			      <any_of>
				<c>-</c>
				<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>
		      </re>
		    </count>
		  </seq>
		  <seq>
		    <count min="0" max="1">
		      <charClass>
			<any_of>
			  <c>-</c>
			  <c>+</c>
			</any_of>
		      </charClass>
		    </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>
	    <ast grammar="PER">
	      <no_parse/>
	    </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]+))((e|E)(-|+)?[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 D8 2E PER 1E">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="float-lh">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="(\+|-)?((\d+(.\d*)?)|(.\d+))((e|E)(\+|-)?\d+)?|-?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 D8 2E PER 1E">
	      <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="1">
			      <re>
				<seq>
				  <count min="1" max="unbounded">
				    <charClass>
				      <mce kw="alldecimaldigits"/>
				    </charClass>
				  </count>
				  <count min="0" max="1">
				    <re>
				      <seq>
					<count min="1" max="1">
					  <charClass>
					    <mce kw="anycharacter_but_nl"/>
					  </charClass>
					</count>
					<count min="0" max="unbounded">
					  <charClass>
					    <mce kw="alldecimaldigits"/>
					  </charClass>
					</count>
				      </seq>
				    </re>
				  </count>
				</seq>
			      </re>
			    </count>
			  </seq>
			  <seq>
			    <count min="1" max="1">
			      <re>
				<seq>
				  <count min="1" max="1">
				    <charClass>
				      <mce kw="anycharacter_but_nl"/>
				    </charClass>
				  </count>
				  <count min="1" max="unbounded">
				    <charClass>
				      <mce kw="alldecimaldigits"/>
				    </charClass>
				  </count>
				</seq>
			      </re>
			    </count>
			  </seq>
			</or>
		      </re>
		    </count>
		    <count min="0" max="1">
		      <re>
			<seq>
			  <count min="1" max="1">
			    <re>
			      <or>
				<seq>
				  <count min="1" max="1">
				    <c>e</c>
				  </count>
				</seq>
				<seq>
				  <count min="1" max="1">
				    <c>E</c>
				  </count>
				</seq>
			      </or>
			    </re>
			  </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>
			      <mce kw="alldecimaldigits"/>
			    </charClass>
			  </count>
			</seq>
		      </re>
		    </count>
		  </seq>
		  <seq>
		    <count min="0" max="1">
		      <c>-</c>
		    </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-lh-bis">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="([+\-]?((\d+(\.\d*)?)|(\.\d+))([eE][+\-]?\d+)?|-?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 W2 W2 W2 D8 2E PER 1E">
	      <seq>
		<count min="1" max="1">
		  <re>
		    <or>
		      <or>
			<seq>
			  <count min="0" max="1">
			    <charClass>
			      <any_of>
				<c>+</c>
				<sce>-</sce>
			      </any_of>
			    </charClass>
			  </count>
			  <count min="1" max="1">
			    <re>
			      <or>
				<seq>
				  <count min="1" max="1">
				    <re>
				      <seq>
					<count min="1" max="unbounded">
					  <charClass>
					    <mce kw="alldecimaldigits"/>
					  </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>
						  <mce kw="alldecimaldigits"/>
						</charClass>
					      </count>
					    </seq>
					  </re>
					</count>
				      </seq>
				    </re>
				  </count>
				</seq>
				<seq>
				  <count min="1" max="1">
				    <re>
				      <seq>
					<count min="1" max="1">
					  <charClass>
					    <sce>.</sce>
					  </charClass>
					</count>
					<count min="1" max="unbounded">
					  <charClass>
					    <mce kw="alldecimaldigits"/>
					  </charClass>
					</count>
				      </seq>
				    </re>
				  </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">
				  <charClass>
				    <any_of>
				      <c>+</c>
				      <sce>-</sce>
				    </any_of>
				  </charClass>
				</count>
				<count min="1" max="unbounded">
				  <charClass>
				    <mce kw="alldecimaldigits"/>
				  </charClass>
				</count>
			      </seq>
			    </re>
			  </count>
			</seq>
			<seq>
			  <count min="0" max="1">
			    <c>-</c>
			  </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>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="float-w3">
    <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="2">
	    <ast grammar="W2 D8 2E 1E">
	      <or>
		<or>
		  <seq>
		    <count min="0" max="1">
		      <charClass>
			<any_of>
			  <c>-</c>
			  <c>+</c>
			</any_of>
		      </charClass>
		    </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">
			    <charClass>
			      <any_of>
				<c>-</c>
				<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>
		      </re>
		    </count>
		  </seq>
		  <seq>
		    <count min="0" max="1">
		      <charClass>
			<any_of>
			  <c>-</c>
			  <c>+</c>
			</any_of>
		      </charClass>
		    </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>
	    <ast grammar="PER">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="float-ed">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))((e|E)(\+|-)?[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 D8 2E PER 1E">
	      <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="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="0" max="unbounded">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="9"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				    </re>
				  </count>
				</seq>
			      </re>
			    </count>
			  </seq>
			  <seq>
			    <count min="1" 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>
			</or>
		      </re>
		    </count>
		    <count min="0" max="1">
		      <re>
			<seq>
			  <count min="1" max="1">
			    <re>
			      <or>
				<seq>
				  <count min="1" max="1">
				    <c>e</c>
				  </count>
				</seq>
				<seq>
				  <count min="1" max="1">
				    <c>E</c>
				  </count>
				</seq>
			      </or>
			    </re>
			  </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">
		      <c>-</c>
		    </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>
		  <count min="1" max="1">
		    <c> </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]+))((e|E)(-|+)?[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 D8 2E PER 1E">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="double-w3">
    <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="2">
	    <ast grammar="W2 D8 2E 1E">
	      <or>
		<or>
		  <seq>
		    <count min="0" max="1">
		      <charClass>
			<any_of>
			  <c>-</c>
			  <c>+</c>
			</any_of>
		      </charClass>
		    </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">
			    <charClass>
			      <any_of>
				<c>-</c>
				<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>
		      </re>
		    </count>
		  </seq>
		  <seq>
		    <count min="0" max="1">
		      <charClass>
			<any_of>
			  <c>-</c>
			  <c>+</c>
			</any_of>
		      </charClass>
		    </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>
	    <ast grammar="PER">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="double-ed">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))((e|E)(\+|-)?[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 D8 2E PER 1E">
	      <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="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="0" max="unbounded">
					  <charClass>
					    <any_of>
					      <simple_range from="0" to="9"/>
					    </any_of>
					  </charClass>
					</count>
				      </seq>
				    </re>
				  </count>
				</seq>
			      </re>
			    </count>
			  </seq>
			  <seq>
			    <count min="1" 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>
			</or>
		      </re>
		    </count>
		    <count min="0" max="1">
		      <re>
			<seq>
			  <count min="1" max="1">
			    <re>
			      <or>
				<seq>
				  <count min="1" max="1">
				    <c>e</c>
				  </count>
				</seq>
				<seq>
				  <count min="1" max="1">
				    <c>E</c>
				  </count>
				</seq>
			      </or>
			    </re>
			  </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">
		      <c>-</c>
		    </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>
		  <count min="1" max="1">
		    <c> </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]*)?)|(.[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 D8 2E PER 1E">
		      <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="1">
				      <re>
					<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>
							    <mce kw="anycharacter_but_nl"/>
							  </charClass>
							</count>
							<count min="0" max="unbounded">
							  <charClass>
							    <any_of>
							      <simple_range from="0" to="9"/>
							    </any_of>
							  </charClass>
							</count>
						      </seq>
						    </re>
						  </count>
						</seq>
					      </re>
					    </count>
					  </seq>
					  <seq>
					    <count min="1" max="1">
					      <re>
						<seq>
						  <count min="1" max="1">
						    <charClass>
						      <mce kw="anycharacter_but_nl"/>
						    </charClass>
						  </count>
						  <count min="1" max="unbounded">
						    <charClass>
						      <any_of>
							<simple_range from="0" to="9"/>
						      </any_of>
						    </charClass>
						  </count>
						</seq>
					      </re>
					    </count>
					  </seq>
					</or>
				      </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 D8 2E PER 1E">
		  <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>
		    <count min="1" max="1">
		      <c>'</c>
		    </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 D8 2E PER 1E">
	      <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="duration-w3">
    <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 D8 2E PER 1E">
		      <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 D8 2E PER 1E">
		  <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>
		    <count min="1" max="1">
		      <c>'</c>
		    </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 D8 2E PER 1E">
	      <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]+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))))?)|((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 D8 2E PER 1E">
	      <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>
				  <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>
					    <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="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>
				  </or>
				</re>
			      </count>
			      <count min="0" max="1">
				<re>
				  <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>D</c>
					    </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>
								  <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>
							  <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>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>
							</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="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>
						      </or>
						    </re>
						  </count>
						</seq>
					      </re>
					    </count>
					  </seq>
					</re>
				      </count>
				    </seq>
				    <seq>
				      <count min="1" max="1">
					<re>
					  <seq>
					    <count min="1" 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>
								  <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>
							  <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>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>
							</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="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>
						      </or>
						    </re>
						  </count>
						</seq>
					      </re>
					    </count>
					  </seq>
					</re>
				      </count>
				    </seq>
				  </or>
				</re>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <seq>
			      <count min="1" max="1">
				<re>
				  <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>D</c>
					    </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>
								  <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>
							  <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>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>
							</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="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>
						      </or>
						    </re>
						  </count>
						</seq>
					      </re>
					    </count>
					  </seq>
					</re>
				      </count>
				    </seq>
				    <seq>
				      <count min="1" max="1">
					<re>
					  <seq>
					    <count min="1" 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>
								  <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>
							  <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>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>
							</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="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>
						      </or>
						    </re>
						  </count>
						</seq>
					      </re>
					    </count>
					  </seq>
					</re>
				      </count>
				    </seq>
				  </or>
				</re>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="duration2-w3a">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="-?P(((([0-9]+Y([0-9]+M)?)|(([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))))?)|((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 D8 2E PER 1E">
	      <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>
				  <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>
					    <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="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>
				  </or>
				</re>
			      </count>
			      <count min="0" max="1">
				<re>
				  <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>D</c>
					    </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>
								  <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>
							  <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>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>
							</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="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>
						      </or>
						    </re>
						  </count>
						</seq>
					      </re>
					    </count>
					  </seq>
					</re>
				      </count>
				    </seq>
				    <seq>
				      <count min="1" max="1">
					<re>
					  <seq>
					    <count min="1" 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>
								  <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>
							  <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>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>
							</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="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>
						      </or>
						    </re>
						  </count>
						</seq>
					      </re>
					    </count>
					  </seq>
					</re>
				      </count>
				    </seq>
				  </or>
				</re>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <seq>
			      <count min="1" max="1">
				<re>
				  <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>D</c>
					    </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>
								  <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>
							  <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>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>
							</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="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>
						      </or>
						    </re>
						  </count>
						</seq>
					      </re>
					    </count>
					  </seq>
					</re>
				      </count>
				    </seq>
				    <seq>
				      <count min="1" max="1">
					<re>
					  <seq>
					    <count min="1" 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>
								  <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>
							  <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>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>
							</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="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>
						      </or>
						    </re>
						  </count>
						</seq>
					      </re>
					    </count>
					  </seq>
					</re>
				      </count>
				    </seq>
				  </or>
				</re>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="duration2-w3">
    <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 D8 2E PER 1E">
	      <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][0-9][0-9]+)|(0[0-9][0-9][0-9])\-(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+)?)([+\-](0[0-9])|(1[0-4]):[0-5][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 D8 2E PER 1E">
	      <or>
		<or>
		  <or>
		    <or>
		      <seq>
			<count min="0" max="1">
			  <charClass>
			    <sce>-</sce>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <re>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <simple_range from="1" to="9"/>
				  </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">
				<charClass>
				  <any_of>
				    <simple_range from="0" to="9"/>
				  </any_of>
				</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>0</c>
			      </count>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <simple_range from="0" to="9"/>
				  </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">
				<charClass>
				  <any_of>
				    <simple_range from="0" to="9"/>
				  </any_of>
				</charClass>
			      </count>
			    </seq>
			  </re>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <sce>-</sce>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <re>
			    <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>
			  </re>
			</count>
		      </seq>
		    </or>
		    <seq>
		      <count min="1" max="1">
			<re>
			  <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>
			</re>
		      </count>
		      <count min="1" max="1">
			<charClass>
			  <sce>-</sce>
			</charClass>
		      </count>
		      <count min="1" max="1">
			<re>
			  <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>
			</re>
		      </count>
		      <count min="1" max="1">
			<re>
			  <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>
			</re>
		      </count>
		    </seq>
		  </or>
		  <seq>
		    <count min="1" max="1">
		      <re>
			<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>
		      </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>
				<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>
			      </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">
				    <charClass>
				      <any_of>
					<simple_range from="0" to="3"/>
				      </any_of>
				    </charClass>
				  </count>
				</seq>
			      </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">
			      <re>
				<seq>
				  <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>
			      </re>
			    </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>
			</or>
		      </re>
		    </count>
		  </seq>
		</or>
		<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>
		  <count min="0" max="1">
		    <re>
		      <or>
			<seq>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<c>+</c>
				<sce>-</sce>
			      </any_of>
			    </charClass>
			  </count>
			  <count min="1" max="1">
			    <re>
			      <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>
			    </re>
			  </count>
			</seq>
			<seq>
			  <count min="1" max="1">
			    <re>
			      <seq>
				<count min="1" max="1">
				  <c>1</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <any_of>
				      <simple_range from="0" to="4"/>
				    </any_of>
				  </charClass>
				</count>
			      </seq>
			    </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>
		      </or>
		    </re>
		  </count>
		</seq>
	      </or>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="dateTime-lh">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="-?([1-9]\d\d\d+|0\d\d\d)-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])T(([01]\d|2[0-3]):[0-5]\d:[0-5]\d(\.\d+)?|24:00:00(\.0+)?)(Z|(\+|-)(0\d|1[0-4]):[0-5]\d)?">
	<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 D8 2E PER 1E">
	      <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="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
			<count min="1" max="unbounded">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <c>0</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </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>
			      <mce kw="alldecimaldigits"/>
			    </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>
				    <mce kw="alldecimaldigits"/>
				  </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>
			    <mce kw="alldecimaldigits"/>
			  </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>
			    <mce kw="alldecimaldigits"/>
			  </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>
				  <mce kw="alldecimaldigits"/>
				</charClass>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		      <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>
		    </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">
				  <c>0</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <mce kw="alldecimaldigits"/>
				  </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="4"/>
				    </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>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="dateTime-w3">
    <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-4]):[0-5][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="5">
	    <ast grammar="W2 D8 2E 1E">
	      <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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="2E 1E">
	      <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="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">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <c>}</c>
			</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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="2E 1E">
	      <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="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">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <c>,</c>
			</count>
			<count min="1" max="1">
			  <c>}</c>
			</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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="2E 1E">
	      <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="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">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <c>,</c>
			</count>
			<count min="1" max="1">
			  <c>}</c>
			</count>
		      </seq>
		      <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>
			<count min="1" max="1">
			  <c>{</c>
			</count>
			<count min="1" max="1">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <c>}</c>
			</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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="PER">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="dateTime-ed">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="-?([1-9][0-9][0-9][0-9]+|0[0-9][0-9][0-9])-(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+)?)(((\+|-)(0[0-9]|1[0-3]):[0-5][0-9]|14:00)|Z)? ">
	<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 D8 2E PER 1E">
	      <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="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </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="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="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </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">
			  <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">
		  <charClass>
		    <sce>-</sce>
		  </charClass>
		</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>
			    <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>
			  </re>
			</count>
		      </seq>
		      <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>
		    </or>
		  </re>
		</count>
		<count min="0" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <or>
			      <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">
					  <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>
		      <seq>
			<count min="1" max="1">
			  <c>Z</c>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="1" max="1">
		  <c> </c>
		</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-4]):[0-5][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 D8 2E PER 1E">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="time-lh">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="(([01]\d|2[0-3]):[0-5]\d:[0-5]\d(\.\d+)?|24:00:00(\.0+)?)(Z|(\+|-)(0\d|1[0-4]):[0-5]\d)?">
	<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 D8 2E PER 1E">
	      <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>
				    <mce kw="alldecimaldigits"/>
				  </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>
			    <mce kw="alldecimaldigits"/>
			  </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>
			    <mce kw="alldecimaldigits"/>
			  </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>
				  <mce kw="alldecimaldigits"/>
				</charClass>
			      </count>
			    </seq>
			  </re>
			</count>
		      </seq>
		      <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>
		    </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">
				  <c>0</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <mce kw="alldecimaldigits"/>
				  </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="4"/>
				    </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>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="time-w3">
    <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-4]):[0-5][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="2">
	    <ast grammar="W2 D8 2E 1E">
	      <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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="PER">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="time-ed">
    <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+)?)(((\+|-)(0[0-9]|1[0-3]):[0-5][0-9]|14:00)|Z)? ">
	<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 D8 2E PER 1E">
	      <seq>
		<count min="1" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <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>
			  </re>
			</count>
		      </seq>
		      <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>
		    </or>
		  </re>
		</count>
		<count min="0" max="1">
		  <re>
		    <or>
		      <seq>
			<count min="1" max="1">
			  <re>
			    <or>
			      <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">
					  <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>
		      <seq>
			<count min="1" max="1">
			  <c>Z</c>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
		<count min="1" max="1">
		  <c> </c>
		</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][0-9][0-9]+)|(0[0-9][0-9][0-9])\-(0[1-9])|(1[0-2])\-([0-2][0-9])|(3[01])((+|\-)(0[0-9]|1[0-4]):[0-5][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 D8 2E PER 1E">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="date-lh">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="-?([1-9]\d\d\d+|0\d\d\d)-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])(Z|(\+|-)(0\d|1[0-4]):[0-5]\d)?">
	<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 D8 2E PER 1E">
	      <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="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
			<count min="1" max="unbounded">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <c>0</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </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>
			      <mce kw="alldecimaldigits"/>
			    </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">
				  <c>0</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <mce kw="alldecimaldigits"/>
				  </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="4"/>
				    </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>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="date-w3">
    <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-4]):[0-5][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="5">
	    <ast grammar="W2 D8 2E 1E">
	      <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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="2E 1E">
	      <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="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">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <c>}</c>
			</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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="2E 1E">
	      <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="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">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <c>,</c>
			</count>
			<count min="1" max="1">
			  <c>}</c>
			</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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="2E 1E">
	      <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="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">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <c>,</c>
			</count>
			<count min="1" max="1">
			  <c>}</c>
			</count>
		      </seq>
		      <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>
			<count min="1" max="1">
			  <c>{</c>
			</count>
			<count min="1" max="1">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <c>}</c>
			</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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="PER">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="date-ed">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="-?([1-9][0-9][0-9][0-9]+|0[0-9][0-9][0-9])-(0[1-9]|1[0-2])-([0[1-9]|[12][0-9])|(3[01])(((\+|-)(0[0-9]|1[0-3]):[0-5][0-9]|14:00)|Z)?  ">
	<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 D8 2E PER 1E">
	      <no_parse/>
	    </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][0-9][0-9]+)|(0[0-9][0-9][0-9])\-(0[1-9])|(1[0-2])((+|\-)(0[0-9]|1[0-4]):[0-5][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 D8 2E PER 1E">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gYearMonth-lh">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="-?([1-9]\d\d\d+|0\d\d\d)-(0[1-9]|1[0-2])(Z|(\+|-)(0\d|1[0-4]):[0-5]\d)?">
	<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 D8 2E PER 1E">
	      <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="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
			<count min="1" max="unbounded">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <c>0</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </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">
				  <c>0</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <mce kw="alldecimaldigits"/>
				  </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="4"/>
				    </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>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gYearMonth-w3">
    <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-4]):[0-5][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="5">
	    <ast grammar="W2 D8 2E 1E">
	      <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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="2E 1E">
	      <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="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">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <c>}</c>
			</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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="2E 1E">
	      <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="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">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <c>,</c>
			</count>
			<count min="1" max="1">
			  <c>}</c>
			</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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="2E 1E">
	      <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="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">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <c>,</c>
			</count>
			<count min="1" max="1">
			  <c>}</c>
			</count>
		      </seq>
		      <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>
			<count min="1" max="1">
			  <c>{</c>
			</count>
			<count min="1" max="1">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <c>}</c>
			</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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="PER">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gYearMonth-ed">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="-?([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9])-(0[1-9])|(1[0-2])   (((\+|-)(0[0-9]|1[0-3]):[0-5][0-9]|14:00)|Z)? ">
	<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 D8 2E PER 1E">
	      <or>
		<or>
		  <seq>
		    <count min="0" max="1">
		      <c>-</c>
		    </count>
		    <count min="1" max="1">
		      <re>
			<seq>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<simple_range from="1" to="9"/>
			      </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">
			    <charClass>
			      <any_of>
				<simple_range from="0" to="9"/>
			      </any_of>
			    </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>0</c>
			  </count>
			  <count min="1" max="1">
			    <charClass>
			      <any_of>
				<simple_range from="0" to="9"/>
			      </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">
			    <charClass>
			      <any_of>
				<simple_range from="0" to="9"/>
			      </any_of>
			    </charClass>
			  </count>
			</seq>
		      </re>
		    </count>
		    <count min="1" max="1">
		      <c>-</c>
		    </count>
		    <count min="1" max="1">
		      <re>
			<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>
		      </re>
		    </count>
		  </seq>
		</or>
		<seq>
		  <count min="1" max="1">
		    <re>
		      <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>
		    </re>
		  </count>
		  <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="0" max="1">
		    <re>
		      <or>
			<seq>
			  <count min="1" max="1">
			    <re>
			      <or>
				<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">
					    <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>
			<seq>
			  <count min="1" max="1">
			    <c>Z</c>
			  </count>
			</seq>
		      </or>
		    </re>
		  </count>
		  <count min="1" max="1">
		    <c> </c>
		  </count>
		</seq>
	      </or>
	    </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][0-9][0-9]+)|(0[0-9][0-9][0-9])((+|\-)(0[0-9]|1[0-4]):[0-5][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 D8 2E PER 1E">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gYear-lh">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="-?([1-9]\d\d\d+|0\d\d\d)(Z|(\+|-)(0\d|1[0-4]):[0-5]\d)?">
	<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 D8 2E PER 1E">
	      <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="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
			<count min="1" max="unbounded">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
		      </seq>
		      <seq>
			<count min="1" max="1">
			  <c>0</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <mce kw="alldecimaldigits"/>
			  </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">
				  <c>0</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <mce kw="alldecimaldigits"/>
				  </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="4"/>
				    </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>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gYear-msm">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="\-?([1-9]*[0-9]{3,})([-+](0[0-9]|1[0-4]):[0-5][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="3">
	    <ast grammar="W2 D8 2E 1E">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <sce>-</sce>
		  </charClass>
		</count>
		<count min="1" max="1">
		  <re>
		    <seq>
		      <count min="0" max="unbounded">
			<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>
		  </re>
		</count>
		<count min="0" max="1">
		  <re>
		    <seq>
		      <count min="1" max="1">
			<charClass>
			  <any_of>
			    <c>-</c>
			    <c>+</c>
			  </any_of>
			</charClass>
		      </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="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="4"/>
				  </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>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="2E 1E">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <sce>-</sce>
		  </charClass>
		</count>
		<count min="1" max="1">
		  <re>
		    <seq>
		      <count min="0" max="unbounded">
			<charClass>
			  <any_of>
			    <simple_range from="1" to="9"/>
			  </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">
			<c>3</c>
		      </count>
		      <count min="1" max="1">
			<c>,</c>
		      </count>
		      <count min="1" max="1">
			<c>}</c>
		      </count>
		    </seq>
		  </re>
		</count>
		<count min="0" max="1">
		  <re>
		    <seq>
		      <count min="1" max="1">
			<charClass>
			  <any_of>
			    <c>-</c>
			    <c>+</c>
			  </any_of>
			</charClass>
		      </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="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="4"/>
				  </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>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="PER">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gYear-w3">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="-?([1-9][0-9]{3,}|0[0-9]{3})(Z|([-+](0[0-9]|1[0-4]):[0-5][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="5">
	    <ast grammar="W2 D8 2E 1E">
	      <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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="2E 1E">
	      <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="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">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <c>}</c>
			</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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="2E 1E">
	      <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="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">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <c>,</c>
			</count>
			<count min="1" max="1">
			  <c>}</c>
			</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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="2E 1E">
	      <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="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">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <c>,</c>
			</count>
			<count min="1" max="1">
			  <c>}</c>
			</count>
		      </seq>
		      <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>
			<count min="1" max="1">
			  <c>{</c>
			</count>
			<count min="1" max="1">
			  <c>3</c>
			</count>
			<count min="1" max="1">
			  <c>}</c>
			</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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="PER">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gYear-ed">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="-?([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9])(((\+|-)(0[0-9]|1[0-3]):[0-5][0-9]|14:00)|Z)? ">
	<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 D8 2E PER 1E">
	      <or>
		<seq>
		  <count min="0" max="1">
		    <c>-</c>
		  </count>
		  <count min="1" max="1">
		    <re>
		      <seq>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="1" to="9"/>
			    </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">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </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>0</c>
			</count>
			<count min="1" max="1">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </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">
			  <charClass>
			    <any_of>
			      <simple_range from="0" to="9"/>
			    </any_of>
			  </charClass>
			</count>
		      </seq>
		    </re>
		  </count>
		  <count min="0" max="1">
		    <re>
		      <or>
			<seq>
			  <count min="1" max="1">
			    <re>
			      <or>
				<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">
					    <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>
			<seq>
			  <count min="1" max="1">
			    <c>Z</c>
			  </count>
			</seq>
		      </or>
		    </re>
		  </count>
		  <count min="1" max="1">
		    <c> </c>
		  </count>
		</seq>
	      </or>
	    </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-2][0-9])|(3[01])((+|\-)(0[0-9]|1[0-4]):[0-5][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 D8 2E PER 1E">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gMonthDay-lh">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="--(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])(Z|(\+|-)(0\d|1[0-4]):[0-5]\d)?">
	<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 D8 2E PER 1E">
	      <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>
			      <mce kw="alldecimaldigits"/>
			    </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">
				  <c>0</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <mce kw="alldecimaldigits"/>
				  </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="4"/>
				    </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>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gMonthDay-w3">
    <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-4]):[0-5][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="2">
	    <ast grammar="W2 D8 2E 1E">
	      <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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="PER">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gMonthDay-ed">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="--(0[1-9]|1[0-2])-([0[1-9]|[12][0-9]|3[01])((+|\-)(0[0-9]|1[0-4]):[0-5][0-9]|14:00)|Z)?">
	<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 D8 2E PER 1E">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gDay">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="\-\-\-([0-2][0-9]|3[01])((+|\-)(0[0-9]|1[0-4]):[0-5][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 D8 2E PER 1E">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gDay-lh">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="---(0[1-9]|[12]\d|3[01])(Z|(\+|-)(0\d|1[0-4]):[0-5]\d)?">
	<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 D8 2E PER 1E">
	      <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>
			      <mce kw="alldecimaldigits"/>
			    </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">
				  <c>0</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <mce kw="alldecimaldigits"/>
				  </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="4"/>
				    </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>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gDay-w3">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="---(0[1-9]|[12][0-9]|3[01])(Z|([-+](0[0-9]|1[0-4]):[0-5][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="2">
	    <ast grammar="W2 D8 2E 1E">
	      <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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="PER">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gDay-ed">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="---([0-[1-9]|[12][0-9]|3[01])((+|-)(0[0-9]|1[0-4]):[0-5][0-9]|14:00)|Z)? ">
	<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 D8 2E PER 1E">
	      <no_parse/>
	    </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])((+|\-)(0[0-9]|1[0-4]):[0-5][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 D8 2E PER 1E">
	      <no_parse/>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gMonth-lh">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="--(0[1-9]|1[0-2])(Z|(\+|-)(0\d|1[0-4]):[0-5]\d)?">
	<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 D8 2E PER 1E">
	      <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">
				  <c>0</c>
				</count>
				<count min="1" max="1">
				  <charClass>
				    <mce kw="alldecimaldigits"/>
				  </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="4"/>
				    </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>
			    <mce kw="alldecimaldigits"/>
			  </charClass>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="gMonth-w3">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
	  value="--(0[1-9]|1[0-2])(Z|([-+](0[0-9]|1[0-4]):[0-5][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="2">
	    <ast grammar="W2 D8 2E 1E">
	      <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>
			    <seq>
			      <count min="1" max="1">
				<charClass>
				  <any_of>
				    <c>-</c>
				    <c>+</c>
				  </any_of>
				</charClass>
			      </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="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="4"/>
					  </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>
			  </re>
			</count>
		      </seq>
		    </or>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="PER">
	      <no_parse/>
	    </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])((+|-)(0[0-9]|1[0-4]):[0-5][0-9]|14:00)|Z)? ">
	<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 D8 2E PER 1E">
	      <no_parse/>
	    </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="2">
	    <ast grammar="W2 D8 2E PER 1E">
	      <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>
	    <ast grammar="2E PER 1E">
	      <seq>
		<count min="0" max="unbounded">
		  <re>
		    <seq>
		      <count min="1" max="1">
			<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>
		      <count min="1" max="1">
			<c>{</c>
		      </count>
		      <count min="1" max="1">
			<c>2</c>
		      </count>
		      <count min="1" max="1">
			<c>}</c>
		      </count>
		    </seq>
		  </re>
		</count>
	      </seq>
	    </ast>
	  </xsd:appinfo>
	</xsd:annotation>
      </xsd:pattern>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="base64Binary-lh">
    <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="8">
	    <ast grammar="W2 D8 2E PER 1E">
	      <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>
	    <ast grammar="2E PER 1E">
	      <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="1" max="1">
				  <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">
				  <c>{</c>
				</count>
				<count min="1" max="1">
				  <c>2</c>
				</count>
				<count min="1" max="1">
				  <c>}</c>
				</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>
	    <ast grammar="2E PER 1E">
	      <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="1" max="1">
				  <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">
				  <c>{</c>
				</count>
				<count min="1" max="1">
				  <c>3</c>
				</count>
				<count min="1" max="1">
				  <c>}</c>
				</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>
	    <ast grammar="2E PER 1E">
	      <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="1" max="1">
				  <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">
				  <c>{</c>
				</count>
				<count min="1" max="1">
				  <c>3</c>
				</count>
				<count min="1" max="1">
				  <c>}</c>
				</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="1" max="1">
				  <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">
				  <c>{</c>
				</count>
				<count min="1" max="1">
				  <c>2</c>
				</count>
				<count min="1" max="1">
				  <c>}</c>
				</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>
	    <ast grammar="2E PER 1E">
	      <seq>
		<count min="0" max="1">
		  <re>
		    <seq>
		      <count min="0" max="unbounded">
			<re>
			  <seq>
			    <count min="1" max="1">
			      <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">
			      <c>{</c>
			    </count>
			    <count min="1" max="1">
			      <c>4</c>
			    </count>
			    <count min="1" max="1">
			      <c>}</c>
			    </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>
	    <ast grammar="2E PER 1E">
	      <seq>
		<count min="0" max="1">
		  <re>
		    <seq>
		      <count min="0" max="unbounded">
			<re>
			  <seq>
			    <count min="1" max="1">
			      <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">
			      <c>{</c>
			    </count>
			    <count min="1" max="1">
			      <c>4</c>
			    </count>
			    <count min="1" max="1">
			      <c>}</c>
			    </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="1" max="1">
				  <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">
				  <c>{</c>
				</count>
				<count min="1" max="1">
				  <c>2</c>
				</count>
				<count min="1" max="1">
				  <c>}</c>
				</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>
	    <ast grammar="2E PER 1E">
	      <seq>
		<count min="0" max="1">
		  <re>
		    <seq>
		      <count min="0" max="unbounded">
			<re>
			  <seq>
			    <count min="1" max="1">
			      <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">
			      <c>{</c>
			    </count>
			    <count min="1" max="1">
			      <c>4</c>
			    </count>
			    <count min="1" max="1">
			      <c>}</c>
			    </count>
			  </seq>
			</re>
		      </count>
		      <count min="1" max="1">
			<re>
			  <or>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <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">
				  <c>{</c>
				</count>
				<count min="1" max="1">
				  <c>3</c>
				</count>
				<count min="1" max="1">
				  <c>}</c>
				</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>
	    <ast grammar="2E PER 1E">
	      <seq>
		<count min="0" max="1">
		  <re>
		    <seq>
		      <count min="0" max="unbounded">
			<re>
			  <seq>
			    <count min="1" max="1">
			      <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">
			      <c>{</c>
			    </count>
			    <count min="1" max="1">
			      <c>4</c>
			    </count>
			    <count min="1" max="1">
			      <c>}</c>
			    </count>
			  </seq>
			</re>
		      </count>
		      <count min="1" max="1">
			<re>
			  <or>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <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">
				  <c>{</c>
				</count>
				<count min="1" max="1">
				  <c>3</c>
				</count>
				<count min="1" max="1">
				  <c>}</c>
				</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="1" max="1">
				  <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">
				  <c>{</c>
				</count>
				<count min="1" max="1">
				  <c>2</c>
				</count>
				<count min="1" max="1">
				  <c>}</c>
				</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="base64Binary-w3">
    <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="8">
	    <ast grammar="W2 D8 2E PER 1E">
	      <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>
	    <ast grammar="2E PER 1E">
	      <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="1" max="1">
				  <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">
				  <c>{</c>
				</count>
				<count min="1" max="1">
				  <c>2</c>
				</count>
				<count min="1" max="1">
				  <c>}</c>
				</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>
	    <ast grammar="2E PER 1E">
	      <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="1" max="1">
				  <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">
				  <c>{</c>
				</count>
				<count min="1" max="1">
				  <c>3</c>
				</count>
				<count min="1" max="1">
				  <c>}</c>
				</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>
	    <ast grammar="2E PER 1E">
	      <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="1" max="1">
				  <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">
				  <c>{</c>
				</count>
				<count min="1" max="1">
				  <c>3</c>
				</count>
				<count min="1" max="1">
				  <c>}</c>
				</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="1" max="1">
				  <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">
				  <c>{</c>
				</count>
				<count min="1" max="1">
				  <c>2</c>
				</count>
				<count min="1" max="1">
				  <c>}</c>
				</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>
	    <ast grammar="2E PER 1E">
	      <seq>
		<count min="0" max="1">
		  <re>
		    <seq>
		      <count min="0" max="unbounded">
			<re>
			  <seq>
			    <count min="1" max="1">
			      <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">
			      <c>{</c>
			    </count>
			    <count min="1" max="1">
			      <c>4</c>
			    </count>
			    <count min="1" max="1">
			      <c>}</c>
			    </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>
	    <ast grammar="2E PER 1E">
	      <seq>
		<count min="0" max="1">
		  <re>
		    <seq>
		      <count min="0" max="unbounded">
			<re>
			  <seq>
			    <count min="1" max="1">
			      <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">
			      <c>{</c>
			    </count>
			    <count min="1" max="1">
			      <c>4</c>
			    </count>
			    <count min="1" max="1">
			      <c>}</c>
			    </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="1" max="1">
				  <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">
				  <c>{</c>
				</count>
				<count min="1" max="1">
				  <c>2</c>
				</count>
				<count min="1" max="1">
				  <c>}</c>
				</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>
	    <ast grammar="2E PER 1E">
	      <seq>
		<count min="0" max="1">
		  <re>
		    <seq>
		      <count min="0" max="unbounded">
			<re>
			  <seq>
			    <count min="1" max="1">
			      <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">
			      <c>{</c>
			    </count>
			    <count min="1" max="1">
			      <c>4</c>
			    </count>
			    <count min="1" max="1">
			      <c>}</c>
			    </count>
			  </seq>
			</re>
		      </count>
		      <count min="1" max="1">
			<re>
			  <or>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <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">
				  <c>{</c>
				</count>
				<count min="1" max="1">
				  <c>3</c>
				</count>
				<count min="1" max="1">
				  <c>}</c>
				</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>
	    <ast grammar="2E PER 1E">
	      <seq>
		<count min="0" max="1">
		  <re>
		    <seq>
		      <count min="0" max="unbounded">
			<re>
			  <seq>
			    <count min="1" max="1">
			      <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">
			      <c>{</c>
			    </count>
			    <count min="1" max="1">
			      <c>4</c>
			    </count>
			    <count min="1" max="1">
			      <c>}</c>
			    </count>
			  </seq>
			</re>
		      </count>
		      <count min="1" max="1">
			<re>
			  <or>
			    <or>
			      <seq>
				<count min="1" max="1">
				  <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">
				  <c>{</c>
				</count>
				<count min="1" max="1">
				  <c>3</c>
				</count>
				<count min="1" max="1">
				  <c>}</c>
				</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="1" max="1">
				  <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">
				  <c>{</c>
				</count>
				<count min="1" max="1">
				  <c>2</c>
				</count>
				<count min="1" max="1">
				  <c>}</c>
				</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 D8 2E PER 1E">
	      <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 D8 2E PER 1E">
	      <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 D8 2E PER 1E">
	      <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 D8 2E PER 1E">
	      <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 D8 2E PER 1E">
	      <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="4">
	    <ast grammar="W2 D8 2E PER 1E">
	      <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>
	    <ast grammar="2E PER 1E">
	      <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="1">
			<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>
		      <count min="1" max="1">
			<c>{</c>
		      </count>
		      <count min="1" max="1">
			<c>1</c>
		      </count>
		      <count min="1" max="1">
			<c>,</c>
		      </count>
		      <count min="1" max="1">
			<c>8</c>
		      </count>
		      <count min="1" max="1">
			<c>}</c>
		      </count>
		    </seq>
		  </re>
		</count>
	      </seq>
	    </ast>
	    <ast grammar="2E PER 1E">
	      <seq>
		<count min="1" max="1">
		  <charClass>
		    <any_of>
		      <simple_range from="a" to="z"/>
		      <simple_range from="A" to="Z"/>
		    </any_of>
		  </charClass>
		</count>
		<count min="1" max="1">
		  <c>{</c>
		</count>
		<count min="1" max="1">
		  <c>1</c>
		</count>
		<count min="1" max="1">
		  <c>,</c>
		</count>
		<count min="1" max="1">
		  <c>8</c>
		</count>
		<count min="1" max="1">
		  <c>}</c>
		</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>
	    <ast grammar="2E PER 1E">
	      <seq>
		<count min="1" max="1">
		  <charClass>
		    <any_of>
		      <simple_range from="a" to="z"/>
		      <simple_range from="A" to="Z"/>
		    </any_of>
		  </charClass>
		</count>
		<count min="1" max="1">
		  <c>{</c>
		</count>
		<count min="1" max="1">
		  <c>1</c>
		</count>
		<count min="1" max="1">
		  <c>,</c>
		</count>
		<count min="1" max="1">
		  <c>8</c>
		</count>
		<count min="1" max="1">
		  <c>}</c>
		</count>
		<count min="0" max="unbounded">
		  <re>
		    <seq>
		      <count min="1" max="1">
			<c>-</c>
		      </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"/>
			  </any_of>
			</charClass>
		      </count>
		      <count min="1" max="1">
			<c>{</c>
		      </count>
		      <count min="1" max="1">
			<c>1</c>
		      </count>
		      <count min="1" max="1">
			<c>,</c>
		      </count>
		      <count min="1" max="1">
			<c>8</c>
		      </count>
		      <count min="1" max="1">
			<c>}</c>
		      </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 D8 2E PER 1E">
	      <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 D8 2E PER 1E">
	      <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 D8 2E PER 1E">
	      <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* ~ [\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 D8 2E PER 1E">
	      <seq>
		<count min="1" max="1">
		  <charClass>
		    <mce kw="nameStart"/>
		  </charClass>
		</count>
		<count min="0" max="unbounded">
		  <charClass>
		    <mce kw="namechar"/>
		  </charClass>
		</count>
		<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">
		  <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="NCName-w3">
    <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 D8 2E PER 1E">
	      <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* ~ [\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 D8 2E PER 1E">
	      <seq>
		<count min="1" max="1">
		  <charClass>
		    <mce kw="nameStart"/>
		  </charClass>
		</count>
		<count min="0" max="unbounded">
		  <charClass>
		    <mce kw="namechar"/>
		  </charClass>
		</count>
		<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">
		  <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-w3">
    <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 D8 2E PER 1E">
	      <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* ~ [\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 D8 2E PER 1E">
	      <seq>
		<count min="1" max="1">
		  <charClass>
		    <mce kw="nameStart"/>
		  </charClass>
		</count>
		<count min="0" max="unbounded">
		  <charClass>
		    <mce kw="namechar"/>
		  </charClass>
		</count>
		<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">
		  <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-w3">
    <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 D8 2E PER 1E">
	      <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 D8 2E PER 1E">
	      <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="IDREFS-w3">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="(([\i-[:]][\c-[:]] )*[\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 D8 2E PER 1E">
	      <seq>
		<count min="0" max="1">
		  <re>
		    <seq>
		      <count min="0" max="unbounded">
			<re>
			  <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="1" max="1">
			      <charClass>
				<difference>
				  <any_of>
				    <mce kw="namechar"/>
				  </any_of>
				  <any_of>
				    <c>:</c>
				  </any_of>
				</difference>
			      </charClass>
			    </count>
			    <count min="1" max="1">
			      <c> </c>
			    </count>
			  </seq>
			</re>
		      </count>
		      <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="1" max="1">
			<charClass>
			  <difference>
			    <any_of>
			      <mce kw="namechar"/>
			    </any_of>
			    <any_of>
			      <c>:</c>
			    </any_of>
			  </difference>
			</charClass>
		      </count>
		    </seq>
		  </re>
		</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* ~ [\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 D8 2E PER 1E">
	      <seq>
		<count min="1" max="1">
		  <charClass>
		    <mce kw="nameStart"/>
		  </charClass>
		</count>
		<count min="0" max="unbounded">
		  <charClass>
		    <mce kw="namechar"/>
		  </charClass>
		</count>
		<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">
		  <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="ENTITY-w3">
    <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 D8 2E PER 1E">
	      <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 D8 2E PER 1E">
	      <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="ENTITIES-w3">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="(([\i-[:]][\c-[:]] )*[\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 D8 2E PER 1E">
	      <seq>
		<count min="0" max="1">
		  <re>
		    <seq>
		      <count min="0" max="unbounded">
			<re>
			  <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="1" max="1">
			      <charClass>
				<difference>
				  <any_of>
				    <mce kw="namechar"/>
				  </any_of>
				  <any_of>
				    <c>:</c>
				  </any_of>
				</difference>
			      </charClass>
			    </count>
			    <count min="1" max="1">
			      <c> </c>
			    </count>
			  </seq>
			</re>
		      </count>
		      <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="1" max="1">
			<charClass>
			  <difference>
			    <any_of>
			      <mce kw="namechar"/>
			    </any_of>
			    <any_of>
			      <c>:</c>
			    </any_of>
			  </difference>
			</charClass>
		      </count>
		    </seq>
		  </re>
		</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 D8 2E PER 1E">
	      <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="integer-w3">
    <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="2">
	    <ast grammar="W2 D8 2E 1E">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <c>-</c>
		      <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>
	    <ast grammar="PER">
	      <no_parse/>
	    </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 D8 2E PER 1E">
	      <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-w3">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="-?[0-9]+|\+0+">
	<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 D8 2E PER 1E">
	      <or>
		<seq>
		  <count min="0" max="1">
		    <c>-</c>
		  </count>
		  <count min="1" max="unbounded">
		    <charClass>
		      <any_of>
			<simple_range from="0" to="9"/>
		      </any_of>
		    </charClass>
		  </count>
		</seq>
		<seq>
		  <count min="1" max="1">
		    <charClass>
		      <sce>+</sce>
		    </charClass>
		  </count>
		  <count min="1" max="unbounded">
		    <c>0</c>
		  </count>
		</seq>
	      </or>
	    </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 D8 2E PER 1E">
	      <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-w3">
    <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 D8 2E PER 1E">
	      <seq>
		<count min="1" max="1">
		  <c>-</c>
		</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 D8 2E PER 1E">
	      <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-w3">
    <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="2">
	    <ast grammar="W2 D8 2E 1E">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <c>-</c>
		      <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>
	    <ast grammar="PER">
	      <no_parse/>
	    </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 D8 2E PER 1E">
	      <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-w3">
    <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="2">
	    <ast grammar="W2 D8 2E 1E">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <c>-</c>
		      <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>
	    <ast grammar="PER">
	      <no_parse/>
	    </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 D8 2E PER 1E">
	      <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-w3">
    <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="2">
	    <ast grammar="W2 D8 2E 1E">
	      <seq>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <c>-</c>
		      <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>
	    <ast grammar="PER">
	      <no_parse/>
	    </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 D8 2E PER 1E">
	      <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="byte-w3">
    <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="2">
	    <ast grammar="W2 D8 2E 1E">
	      <seq>
		<count min="1" max="1">
		  <c> </c>
		</count>
		<count min="0" max="1">
		  <charClass>
		    <any_of>
		      <c>-</c>
		      <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>
	    <ast grammar="PER">
	      <no_parse/>
	    </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 D8 2E PER 1E">
	      <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="nonNegativeInteger-w3">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\+?[0-9]+|-0+">
	<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 D8 2E PER 1E">
	      <or>
		<seq>
		  <count min="0" 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>
		<seq>
		  <count min="1" max="1">
		    <c>-</c>
		  </count>
		  <count min="1" max="unbounded">
		    <c>0</c>
		  </count>
		</seq>
	      </or>
	    </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 D8 2E PER 1E">
	      <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-w3">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\+?[0-9]+|-0+">
	<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 D8 2E PER 1E">
	      <or>
		<seq>
		  <count min="0" 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>
		<seq>
		  <count min="1" max="1">
		    <c>-</c>
		  </count>
		  <count min="1" max="unbounded">
		    <c>0</c>
		  </count>
		</seq>
	      </or>
	    </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 D8 2E PER 1E">
	      <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-w3">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\+?[0-9]+|-0+">
	<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 D8 2E PER 1E">
	      <or>
		<seq>
		  <count min="0" 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>
		<seq>
		  <count min="1" max="1">
		    <c>-</c>
		  </count>
		  <count min="1" max="unbounded">
		    <c>0</c>
		  </count>
		</seq>
	      </or>
	    </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 D8 2E PER 1E">
	      <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-w3">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\+?[0-9]+|-0+">
	<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 D8 2E PER 1E">
	      <or>
		<seq>
		  <count min="0" 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>
		<seq>
		  <count min="1" max="1">
		    <c>-</c>
		  </count>
		  <count min="1" max="unbounded">
		    <c>0</c>
		  </count>
		</seq>
	      </or>
	    </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 D8 2E PER 1E">
	      <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-w3">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\+?[0-9]+|-0+">
	<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 D8 2E PER 1E">
	      <or>
		<seq>
		  <count min="0" 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>
		<seq>
		  <count min="1" max="1">
		    <c>-</c>
		  </count>
		  <count min="1" max="unbounded">
		    <c>0</c>
		  </count>
		</seq>
	      </or>
	    </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 D8 2E PER 1E">
	      <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-w3">
    <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 D8 2E PER 1E">
	      <seq>
		<count min="0" 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>
	    </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 D8 2E PER 1E">
	      <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 D8 2E PER 1E">
	      <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:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="yearMonthDuration-w3">
    <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 D8 2E PER 1E">
	      <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="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>
		      <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 D8 2E PER 1E">
	      <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: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 D8 2E PER 1E">
	      <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-w3">
    <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 D8 2E PER 1E">
	      <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 D8 2E PER 1E">
	      <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:simpleType name="dayTimeDuration-bis-w3">
    <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 D8 2E PER 1E">
	      <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>