<?xml version="1.0" encoding="UTF-8"?><!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by Ulrich Dinger (private) --><!-- COPYRIGHT 2005, Siemens AG/ETH Zurich--><!-- NOTE: This file contains errors. In order to get a valid instance, please send an email to contact@fxl-project.com--><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">	<xs:element name="unit">		<xs:complexType>			<xs:sequence>				<xs:element ref="service"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="service">		<xs:complexType>			<xs:all>				<xs:element ref="definition"/>				<xs:element ref="body"/>			</xs:all>		</xs:complexType>	</xs:element>	<xs:element name="definition">		<xs:complexType>			<xs:all>				<xs:element ref="description"/>				<xs:element ref="resources" minOccurs="0"/>				<xs:element ref="partners" minOccurs="0"/>				<xs:element ref="namespaces" minOccurs="0"/>				<xs:element name="interfaces" minOccurs="0">					<xs:complexType>						<xs:sequence>							<xs:element ref="interface" maxOccurs="unbounded"/>						</xs:sequence>					</xs:complexType>				</xs:element>			</xs:all>		</xs:complexType>	</xs:element>	<xs:element name="description">		<xs:complexType>			<xs:sequence>				<xs:element ref="name"/>				<xs:element name="version" type="xs:string" minOccurs="0"/>				<xs:element name="text" type="xs:string" minOccurs="0"/>				<xs:element name="category" type="xs:string" minOccurs="0"/>				<xs:element ref="contacts" minOccurs="0"/>				<xs:element ref="semantic" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="contacts">		<xs:complexType>			<xs:sequence>				<xs:element name="contact" type="xs:string" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="resources">		<xs:complexType>			<xs:sequence>				<xs:element ref="resource" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="resource">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname"/>				<xs:element ref="type" minOccurs="0"/>				<xs:element ref="binding" minOccurs="0"/>				<xs:element ref="throw" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="location">		<xs:complexType>			<xs:group ref="expression"/>		</xs:complexType>	</xs:element>	<xs:element name="binding">		<xs:complexType>			<xs:sequence>				<xs:element ref="location" minOccurs="0"/>				<xs:element ref="properties" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="properties">		<xs:complexType>			<xs:sequence>				<xs:element ref="property" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="property">		<xs:complexType>			<xs:sequence>				<xs:element name="key" type="xs:string"/>				<xs:element name="value" type="xs:string"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="partners">		<xs:complexType>			<xs:sequence>				<xs:element ref="partner" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="partner">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname"/>				<xs:element ref="interfaces" minOccurs="0"/>				<xs:element name="binding" minOccurs="0">					<xs:complexType>						<xs:choice>							<xs:element ref="endpoint"/>							<xs:element ref="query"/>							<xs:element ref="wrapper"/>						</xs:choice>					</xs:complexType>				</xs:element>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="interfaces">		<xs:complexType>			<xs:sequence>				<xs:element ref="interface" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="interface">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname"/>			</xs:sequence>		</xs:complexType>		<!-- represents the interface of the partner declaration !-->	</xs:element>	<xs:element name="endpoint">		<xs:complexType>			<xs:sequence>				<xs:group ref="expression"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="query">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname"/>				<xs:element ref="language"/>				<xs:element ref="version"/>				<xs:element ref="resolution" minOccurs="0"/>				<xs:element ref="properties" minOccurs="0"/>				<xs:element ref="semantic" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="resolution">		<xs:simpleType>			<xs:restriction base="xs:string">				<xs:enumeration value="ONCE"/>				<xs:enumeration value="FAILS"/>				<xs:enumeration value="ALWAYS"/>				<xs:enumeration value="AUTO"/>				<xs:enumeration value="MANUAL"/>			</xs:restriction>		</xs:simpleType>	</xs:element>	<xs:element name="wrapper">		<xs:complexType>			<xs:sequence>				<xs:group ref="language"/>				<xs:element ref="imports" minOccurs="0"/>				<xs:element ref="mapping" minOccurs="0"/>				<xs:element name="class" type="xs:string" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="imports">		<xs:complexType>			<xs:sequence>				<xs:element ref="import" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="import">		<xs:complexType>			<xs:sequence>				<xs:element name="uri" type="xs:string"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="version" type="xs:string"/>	<xs:element name="language" type="xs:string"/>	<xs:element name="namespaces">		<xs:complexType>			<xs:sequence>				<xs:element ref="namespace" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="name" type="xs:string"/>	<xs:element name="namespace">		<xs:complexType>			<xs:sequence>				<xs:element ref="name"/>				<xs:element name="location" type="xs:string"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="body">		<xs:complexType>			<xs:sequence>				<xs:element ref="clauses" minOccurs="0"/>				<xs:element ref="propagations" minOccurs="0"/>				<xs:element ref="operations" minOccurs="0"/>				<xs:element ref="scopes" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="clauses">		<xs:complexType>			<xs:all>				<xs:element ref="triggers" minOccurs="0"/>				<xs:element ref="monitors" minOccurs="0"/>				<xs:element ref="timeouts" minOccurs="0"/>				<xs:element ref="catches" minOccurs="0"/>				<xs:element ref="lifecycle" minOccurs="0"/>				<xs:element ref="default_op" minOccurs="0"/>				<xs:element ref="unknown_op" minOccurs="0"/>				<xs:element ref="variables" minOccurs="0"/>				<xs:element ref="contexts" minOccurs="0"/>				<xs:element ref="roles" minOccurs="0"/>			</xs:all>		</xs:complexType>	</xs:element>	<xs:element name="triggers">		<xs:complexType>			<xs:sequence>				<xs:element ref="trigger" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="trigger">		<xs:complexType>			<xs:sequence>				<xs:element ref="event"/>				<xs:element ref="action"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="event">		<xs:complexType>			<xs:sequence>				<xs:element ref="boolean"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="action">		<xs:complexType>			<xs:sequence>				<xs:group ref="statement"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="monitors">		<xs:complexType>			<xs:sequence>				<xs:element ref="monitor" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="condition">		<xs:complexType>			<xs:sequence>				<xs:element ref="boolean"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="monitor">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname"/>				<xs:element ref="condition" minOccurs="0"/>				<xs:element ref="action"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="timeouts">		<xs:complexType>			<xs:sequence>				<xs:element ref="timeout" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="timeout">		<xs:complexType>			<xs:sequence>				<xs:element name="type" minOccurs="0">					<xs:simpleType>						<xs:restriction base="xs:string">							<xs:enumeration value="CONTEXT"/>							<xs:enumeration value="INVOKE"/>						</xs:restriction>					</xs:simpleType>				</xs:element>				<xs:element ref="duration"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="catches">		<xs:complexType>			<xs:sequence>				<xs:element ref="catch" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="catch">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname"/>				<xs:element ref="type" minOccurs="0"/>				<xs:element ref="statements" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="type">		<xs:complexType>			<xs:group ref="sequenceType"/>		</xs:complexType>	</xs:element>	<xs:element name="lifecycle">		<xs:complexType>			<xs:choice maxOccurs="unbounded">				<xs:element ref="stop"/>				<xs:element ref="init"/>			</xs:choice>		</xs:complexType>	</xs:element>	<xs:element name="stop">		<xs:complexType>			<xs:sequence>				<xs:group ref="statement" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="init">		<xs:complexType>			<xs:sequence>				<xs:group ref="statement" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="types">		<xs:complexType>			<xs:sequence>				<xs:element ref="type" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:group name="operation_sig_decl">		<xs:sequence>			<xs:element ref="qname"/>			<xs:element ref="types" minOccurs="0"/>			<xs:element name="returns" minOccurs="0">				<xs:complexType>					<xs:group ref="sequenceType"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:element name="default_op">		<xs:complexType>			<xs:sequence>				<xs:group ref="operation_sig"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="unknown_op">		<xs:complexType>			<xs:sequence>				<xs:group ref="operation_sig"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="variables">		<xs:complexType>			<xs:sequence>				<xs:element ref="variable" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="variable">		<xs:complexType>			<xs:sequence>				<xs:element ref="type" minOccurs="0"/>				<xs:element ref="qname"/>				<xs:group ref="assignmentGroup"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:group name="assignmentGroup">		<xs:sequence>			<xs:element name="assignment" minOccurs="0">				<xs:complexType>					<xs:sequence>						<xs:element ref="expressions" minOccurs="0"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:element name="roles">		<xs:complexType>			<xs:all>				<xs:element ref="allow"/>				<xs:element ref="deny"/>			</xs:all>		</xs:complexType>	</xs:element>	<xs:element name="role">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="allow">		<xs:complexType>			<xs:sequence>				<xs:group ref="roles"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:group name="roles">		<xs:sequence>			<xs:element name="roles">				<xs:complexType>					<xs:sequence>						<xs:element ref="role" maxOccurs="unbounded"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:element name="deny">		<xs:complexType>			<xs:sequence>				<xs:group ref="roles"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="contexts">		<xs:complexType>			<xs:sequence>				<xs:element ref="context" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="pattern">		<xs:simpleType>			<xs:restriction base="xs:string">				<xs:enumeration value="NEW"/>				<xs:enumeration value="KEYS_REQUIRED"/>				<xs:enumeration value="ALL_REQUIRED"/>				<xs:enumeration value="KEYS_FORBIDDEN"/>			</xs:restriction>		</xs:simpleType>	</xs:element>	<xs:group name="master_key_decl">		<xs:sequence>			<xs:element name="keys">				<xs:complexType>					<xs:sequence>						<xs:element name="key" maxOccurs="unbounded">							<xs:complexType>								<xs:choice>									<xs:element name="AUTO" type="xs:string" minOccurs="0"/>									<xs:sequence>										<xs:element ref="type" minOccurs="0"/>										<xs:element name="name" type="xs:string"/>										<xs:element ref="key_generator" minOccurs="0"/>									</xs:sequence>								</xs:choice>							</xs:complexType>						</xs:element>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:element name="key_generator">		<xs:complexType>			<xs:sequence>				<xs:element ref="expressions"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:group name="custom_key_decl">		<xs:sequence>			<xs:element name="key" maxOccurs="unbounded">				<xs:complexType>					<xs:all>						<xs:element ref="type" minOccurs="0"/>						<xs:element name="name" type="xs:string"/>						<xs:element ref="key_generator" minOccurs="0"/>					</xs:all>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:element name="count" type="xs:integer"/>	<xs:element name="context">		<xs:complexType>			<xs:sequence>				<xs:element name="name" type="xs:string"/>				<xs:element ref="count" minOccurs="0"/>				<xs:element name="master_key">					<xs:complexType>						<xs:sequence>							<xs:group ref="master_key_decl"/>						</xs:sequence>					</xs:complexType>				</xs:element>				<xs:element name="custom_key" minOccurs="0">					<xs:complexType>						<xs:sequence>							<xs:element name="count" type="xs:integer" minOccurs="0"/>							<xs:element name="keys" maxOccurs="unbounded">								<xs:complexType>									<xs:sequence>										<xs:group ref="custom_key_decl"/>									</xs:sequence>								</xs:complexType>							</xs:element>						</xs:sequence>					</xs:complexType>				</xs:element>				<xs:element ref="pattern" minOccurs="0"/>				<xs:element ref="timeout" minOccurs="0"/>				<xs:element ref="resources" minOccurs="0"/>				<xs:element ref="partners" minOccurs="0"/>				<xs:element name="variables" minOccurs="0">					<xs:complexType>						<xs:sequence>							<xs:element name="variable" maxOccurs="unbounded">								<xs:complexType>									<xs:sequence>										<xs:element ref="type" minOccurs="0"/>										<xs:element name="name" type="xs:string"/>										<xs:group ref="assignmentGroup"/>									</xs:sequence>								</xs:complexType>							</xs:element>						</xs:sequence>					</xs:complexType>				</xs:element>				<xs:element ref="triggers" minOccurs="0"/>				<xs:element ref="monitors" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="propagations">		<xs:complexType>			<xs:sequence>				<xs:element ref="propagation" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="propagation">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname"/>				<xs:choice>					<xs:element ref="include" minOccurs="0" maxOccurs="unbounded"/>					<xs:element ref="exclude" minOccurs="0" maxOccurs="unbounded"/>				</xs:choice>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="include">		<xs:complexType>			<xs:sequence>				<xs:group ref="propagation_operations" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:group name="propagation_operations">		<xs:sequence>			<xs:element name="operations">				<xs:complexType>					<xs:sequence>						<xs:group ref="operation_sig"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="operation_sig">		<xs:sequence>			<xs:element name="operation" maxOccurs="unbounded">				<xs:complexType>					<xs:sequence>						<xs:group ref="operation_sig_decl"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:element name="exclude">		<xs:complexType>			<xs:sequence>				<xs:group ref="propagation_operations" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="modifiers">		<xs:complexType>			<xs:all minOccurs="0">				<xs:element name="public" minOccurs="0"/>				<xs:element name="private" minOccurs="0"/>				<xs:element name="synchronized" minOccurs="0"/>				<xs:element name="au" minOccurs="0"/>				<xs:element name="en" minOccurs="0"/>				<xs:element name="si" minOccurs="0"/>				<xs:element name="uau" minOccurs="0"/>				<xs:element name="uen" minOccurs="0"/>				<xs:element name="usi" minOccurs="0"/>				<xs:element name="au_rp" minOccurs="0"/>				<xs:element name="en_rp" minOccurs="0"/>				<xs:element name="si_rp" minOccurs="0"/>				<xs:element name="uau_rp" minOccurs="0"/>				<xs:element name="uen_rp" minOccurs="0"/>				<xs:element name="usi_rp" minOccurs="0"/>				<xs:element name="au_rq" minOccurs="0"/>				<xs:element name="en_rq" minOccurs="0"/>				<xs:element name="si_rq" minOccurs="0"/>				<xs:element name="uau_rq" minOccurs="0"/>				<xs:element name="uen_rq" minOccurs="0"/>				<xs:element name="usi_rq" minOccurs="0"/>			</xs:all>		</xs:complexType>	</xs:element>	<xs:group name="param_sec_modifier">		<xs:sequence>			<xs:element name="modifiers">				<xs:complexType>					<xs:all>						<xs:element name="en" minOccurs="0"/>						<xs:element name="uen" minOccurs="0"/>						<xs:element name="si" minOccurs="0"/>						<xs:element name="usi" minOccurs="0"/>					</xs:all>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:element name="operations">		<xs:complexType>			<xs:sequence>				<xs:element ref="operation" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:group name="simpleReturnsGroup">		<xs:sequence>			<xs:element ref="qname" minOccurs="0"/>			<xs:group ref="param_sec_modifier" minOccurs="0"/>			<xs:group ref="sequenceType"/>		</xs:sequence>	</xs:group>	<xs:element name="returns">		<xs:complexType>			<xs:choice>				<xs:group ref="simpleReturnsGroup"/>				<xs:element name="part" maxOccurs="unbounded">					<xs:complexType>						<xs:sequence>							<xs:group ref="simpleReturnsGroup"/>						</xs:sequence>					</xs:complexType>				</xs:element>			</xs:choice>		</xs:complexType>	</xs:element>	<xs:element name="operation">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname"/>				<xs:element ref="modifiers" minOccurs="0"/>				<xs:element ref="parameters" minOccurs="0"/>				<xs:element ref="returns" minOccurs="0"/>				<xs:element name="throws" minOccurs="0">					<xs:complexType>						<xs:group ref="sequenceType" maxOccurs="unbounded"/>					</xs:complexType>				</xs:element>				<xs:element name="clauses" minOccurs="0">					<xs:complexType>						<xs:group ref="operation_clauses"/>					</xs:complexType>				</xs:element>				<xs:element name="semantic" minOccurs="0">					<xs:complexType>						<xs:all>							<xs:element name="signature" minOccurs="0">								<xs:complexType>									<xs:sequence>										<xs:element ref="parameters" minOccurs="0"/>										<xs:element ref="returns" minOccurs="0"/>									</xs:sequence>								</xs:complexType>							</xs:element>							<xs:element name="mappings" minOccurs="0">								<xs:complexType>									<xs:sequence>										<xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>									</xs:sequence>								</xs:complexType>							</xs:element>							<xs:element name="pre_conditions" minOccurs="0">								<xs:complexType>									<xs:sequence>										<xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>									</xs:sequence>								</xs:complexType>							</xs:element>							<xs:element name="post_conditions" minOccurs="0">								<xs:complexType>									<xs:sequence>										<xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>									</xs:sequence>								</xs:complexType>							</xs:element>							<xs:element name="effects" minOccurs="0">								<xs:complexType>									<xs:sequence>										<xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>									</xs:sequence>								</xs:complexType>							</xs:element>						</xs:all>					</xs:complexType>				</xs:element>				<xs:element ref="statements" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:group name="operation_clauses">		<xs:all>			<xs:element ref="timeouts" minOccurs="0"/>			<xs:element ref="catches" minOccurs="0"/>			<xs:element ref="roles" minOccurs="0"/>		</xs:all>	</xs:group>	<xs:element name="parameters">		<xs:complexType>			<xs:sequence>				<xs:element name="parameter" maxOccurs="unbounded">					<xs:complexType>						<xs:sequence>							<xs:group ref="param_sec_modifier" minOccurs="0"/>							<xs:group ref="operation_parameter"/>						</xs:sequence>					</xs:complexType>				</xs:element>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:group name="operation_parameter">		<xs:sequence>			<xs:element ref="type" minOccurs="0"/>			<xs:element ref="qname"/>		</xs:sequence>	</xs:group>	<xs:element name="scopes">		<xs:complexType>			<xs:sequence>				<xs:element ref="scope" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="scope">		<xs:complexType>			<xs:all>				<xs:element ref="clauses" minOccurs="0"/>				<xs:element ref="operations" minOccurs="0"/>				<xs:element ref="scopes" minOccurs="0"/>			</xs:all>		</xs:complexType>	</xs:element>	<xs:element name="statements">		<xs:complexType>			<xs:sequence>				<xs:group ref="statement" minOccurs="0" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<!-- ================================= -->	<!--                      STATEMENTS                        -->	<!-- ================================= -->	<xs:group name="expr_statement">		<xs:choice>			<xs:element ref="invoke" minOccurs="0"/>			<xs:element ref="built_in_function" minOccurs="0"/>		</xs:choice>	</xs:group>	<xs:group name="statement">		<xs:choice>			<xs:element ref="sequence"/>			<xs:element ref="parallel"/>			<xs:element ref="unordered"/>			<xs:element ref="get"/>			<xs:element ref="set"/>			<xs:element ref="block"/>			<xs:element ref="sleep"/>			<xs:element ref="variable"/>			<xs:element ref="empty"/>			<xs:element ref="while"/>			<xs:element ref="do"/>			<xs:element ref="if"/>			<xs:element ref="switch"/>			<xs:element ref="for"/>			<xs:element ref="break"/>			<xs:element ref="continue"/>			<xs:element ref="return"/>			<xs:element ref="throw"/>			<xs:element ref="try"/>			<xs:element ref="terminate"/>			<xs:element ref="sync"/>			<xs:element ref="activate"/>			<xs:element ref="deactivate"/>			<xs:element ref="sync_point"/>			<xs:element ref="transaction"/>			<xs:element ref="prepare"/>			<xs:element ref="commit"/>			<xs:element ref="abort"/>			<xs:element ref="insert"/>			<xs:element ref="move"/>			<xs:element ref="replace"/>			<xs:element ref="delete"/>			<xs:element ref="rename"/>			<xs:element ref="invoke"/>			<xs:group ref="code_wrapper"/>			<xs:element ref="built_in_function"/>			<xs:group ref="expression"/>		</xs:choice>	</xs:group>	<xs:element name="identity">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="isencrypted">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="print">		<xs:complexType>			<xs:sequence>				<xs:element ref="expressions" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="get_request"/>	<xs:element name="log">		<xs:complexType>			<xs:sequence>				<xs:element ref="expressions" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="transform">		<xs:complexType>			<xs:sequence>				<xs:group ref="expression" minOccurs="0"/>				<xs:element ref="qname" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="built_in_function">		<xs:complexType>			<xs:choice>				<xs:element ref="identity" minOccurs="0"/>				<xs:element ref="isencrypted" minOccurs="0"/>				<xs:element ref="print" minOccurs="0"/>				<xs:element ref="get_request" minOccurs="0"/>				<xs:element ref="log" minOccurs="0"/>				<xs:element ref="transform" minOccurs="0"/>			</xs:choice>		</xs:complexType>	</xs:element>	<xs:element name="mapping">		<xs:complexType>			<xs:choice>				<xs:element name="uri" type="xs:string"/>				<xs:element name="namespace" type="xs:string"/>			</xs:choice>		</xs:complexType>	</xs:element>	<xs:group name="language">		<xs:sequence>			<xs:element name="language">				<xs:complexType>					<xs:sequence>						<xs:element name="name" type="xs:string"/>						<xs:element name="version" type="xs:string" minOccurs="0"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="code_wrapper">		<xs:sequence>			<xs:element name="wrapper">				<xs:complexType>					<xs:sequence>						<xs:element name="name" type="xs:string"/>						<xs:group ref="language"/>						<xs:element ref="imports" minOccurs="0"/>						<xs:element ref="mapping" minOccurs="0"/>						<xs:element name="parameters" minOccurs="0">							<xs:complexType>								<xs:sequence>									<xs:element ref="parameter" maxOccurs="unbounded"/>								</xs:sequence>							</xs:complexType>						</xs:element>						<xs:element name="returns" minOccurs="0">							<xs:complexType>								<xs:group ref="sequenceType"/>							</xs:complexType>						</xs:element>						<xs:element name="cdata" type="xs:string" minOccurs="0"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="destination_group">		<xs:choice>			<xs:element name="uri" type="xs:string"/>			<xs:element name="partner">				<xs:complexType>					<xs:sequence>						<xs:element ref="qname"/>					</xs:sequence>				</xs:complexType>			</xs:element>			<xs:group ref="variable"/>		</xs:choice>	</xs:group>	<xs:element name="destination">		<xs:complexType>			<xs:sequence>				<xs:group ref="destination_group"/>				<xs:element name="operation" minOccurs="0">					<xs:complexType>						<xs:choice>							<xs:element name="name" type="xs:string"/>							<xs:element ref="qname"/>						</xs:choice>					</xs:complexType>				</xs:element>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:group name="retry_choice">		<xs:choice>			<xs:element ref="count"/>			<xs:element ref="duration"/>		</xs:choice>	</xs:group>	<xs:element name="retry">		<xs:complexType>			<xs:sequence>				<xs:group ref="retry_choice"/>				<xs:element ref="sleep" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="invoke">		<xs:complexType>			<xs:sequence>				<xs:element ref="modifiers" minOccurs="0"/>				<xs:element name="type">					<xs:simpleType>						<xs:restriction base="xs:string">							<xs:enumeration value="SYNC"/>							<xs:enumeration value="ASYNC"/>						</xs:restriction>					</xs:simpleType>				</xs:element>				<xs:element ref="destination"/>				<xs:group ref="call_parameters"/>				<xs:group ref="timeout" minOccurs="0"/>				<xs:element ref="retry" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:group name="timeout">		<xs:sequence>			<xs:element name="timeout">				<xs:complexType>					<xs:sequence>						<xs:element ref="duration" minOccurs="0"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="call_parameters">		<xs:sequence>			<xs:element name="parameters" minOccurs="0">				<xs:complexType>					<xs:sequence>						<xs:element name="parameter" maxOccurs="unbounded">							<xs:complexType>								<xs:sequence>									<xs:group ref="expression"/>								</xs:sequence>							</xs:complexType>						</xs:element>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:element name="rename">		<xs:complexType>			<xs:sequence>				<xs:group ref="sll_path_expr"/>				<xs:element name="to">					<xs:complexType>						<xs:choice>							<xs:group ref="expression"/>							<xs:element ref="qname"/>						</xs:choice>					</xs:complexType>				</xs:element>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="delete">		<xs:complexType>			<xs:sequence>				<xs:group ref="sll_path_expr"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="replace">		<xs:complexType>			<xs:sequence>				<xs:group ref="sll_path_expr"/>				<xs:element name="with">					<xs:complexType>						<xs:sequence>							<xs:group ref="expression"/>						</xs:sequence>					</xs:complexType>				</xs:element>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="move">		<xs:complexType>			<xs:sequence>				<xs:group ref="sll_path_expr"/>				<xs:group ref="insert_choices"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:group name="insert_choices">		<xs:choice>			<xs:element name="into">				<xs:complexType>					<xs:sequence>						<xs:group ref="sll_path_expr"/>					</xs:sequence>				</xs:complexType>			</xs:element>			<xs:element name="before">				<xs:complexType>					<xs:sequence>						<xs:group ref="sll_path_expr"/>					</xs:sequence>				</xs:complexType>			</xs:element>			<xs:element name="after">				<xs:complexType>					<xs:sequence>						<xs:group ref="sll_path_expr"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:choice>	</xs:group>	<xs:element name="insert">		<xs:complexType>			<xs:sequence>				<xs:group ref="expression"/>				<xs:group ref="insert_choices"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="abort">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname" minOccurs="0"/>				<xs:group ref="call_parameters" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="commit">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname" minOccurs="0" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="prepare">		<xs:complexType>			<xs:sequence>				<xs:group ref="statement" minOccurs="0" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:group name="transaction_inner_elements">		<xs:sequence>			<xs:group ref="statement"/>			<xs:element name="compensate" minOccurs="0">				<xs:complexType>					<xs:sequence>						<xs:group ref="statement"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:element name="parameter">		<xs:complexType>			<xs:sequence>				<xs:element ref="type" minOccurs="0"/>				<xs:element ref="qname"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:group name="sll_param_list">		<xs:sequence>			<xs:element name="parameters" minOccurs="0">				<xs:complexType>					<xs:sequence>						<xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:element name="transaction">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname"/>				<xs:group ref="sll_param_list"/>				<xs:group ref="transaction_inner_elements" minOccurs="0" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="sync_point">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname"/>				<xs:group ref="timeout" minOccurs="0"/>				<xs:element ref="throw" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="deactivate">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="activate">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="sync">		<xs:complexType>			<xs:sequence>				<xs:element ref="qname"/>				<xs:group ref="statement" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="terminate">		<xs:complexType>			<xs:sequence>				<xs:element name="name" type="xs:string" minOccurs="0"/>				<xs:element name="all" type="xs:string" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="try">		<xs:complexType>			<xs:sequence>				<xs:element ref="statements"/>				<xs:element ref="catch" minOccurs="0" maxOccurs="unbounded"/>				<xs:element name="finally" minOccurs="0">					<xs:complexType>						<xs:sequence>							<xs:element ref="statements" minOccurs="0"/>						</xs:sequence>					</xs:complexType>				</xs:element>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="throw">		<xs:complexType>			<xs:sequence>				<xs:element ref="expressions"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="return">		<xs:complexType>			<xs:sequence>				<xs:group ref="expression" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="continue">		<xs:complexType>			<xs:sequence>				<xs:element ref="label" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="label" type="xs:string"/>	<xs:element name="break">		<xs:complexType>			<xs:sequence>				<xs:element ref="label" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:group name="iterator_for_group">		<xs:choice>			<xs:element name="expression">				<xs:complexType>					<xs:sequence>						<xs:element ref="variable"/>					</xs:sequence>				</xs:complexType>			</xs:element>			<xs:element ref="variable"/>		</xs:choice>	</xs:group>	<xs:group name="iterator_for">		<xs:sequence>			<xs:group ref="iterator_for_group"/>			<xs:element name="in">				<xs:complexType>					<xs:sequence>						<xs:group ref="expression"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="ordinary_for">		<xs:sequence>			<xs:element ref="variable" minOccurs="0"/>			<xs:element ref="boolean" minOccurs="0"/>			<xs:element name="update" minOccurs="0">				<xs:complexType>					<xs:choice>						<xs:element ref="assignment"/>						<xs:group ref="exprSingle"/>					</xs:choice>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:element name="for">		<xs:complexType>			<xs:sequence>				<xs:element ref="label" minOccurs="0"/>				<xs:choice>					<xs:element name="iterator">						<xs:complexType>							<xs:sequence>								<xs:group ref="iterator_for"/>							</xs:sequence>						</xs:complexType>					</xs:element>					<xs:group ref="ordinary_for"/>				</xs:choice>				<xs:element name="loop_body">					<xs:complexType>						<xs:sequence>							<xs:group ref="statement"/>						</xs:sequence>					</xs:complexType>				</xs:element>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="switch">		<xs:complexType>			<xs:sequence>				<xs:group ref="expression"/>				<xs:element name="cases">					<xs:complexType>						<xs:sequence>							<xs:element name="case" maxOccurs="unbounded">								<xs:complexType>									<xs:sequence>										<xs:group ref="expression"/>										<xs:group ref="statement"/>									</xs:sequence>								</xs:complexType>							</xs:element>						</xs:sequence>					</xs:complexType>				</xs:element>				<xs:element name="default" minOccurs="0">					<xs:complexType>						<xs:sequence>							<xs:group ref="statement"/>						</xs:sequence>					</xs:complexType>				</xs:element>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="if">		<xs:complexType>			<xs:sequence>				<xs:element ref="boolean"/>				<xs:element name="then">					<xs:complexType>						<xs:sequence>							<xs:group ref="statement"/>						</xs:sequence>					</xs:complexType>				</xs:element>				<xs:element name="else" minOccurs="0">					<xs:complexType>						<xs:sequence>							<xs:group ref="statement"/>						</xs:sequence>					</xs:complexType>				</xs:element>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="do">		<xs:complexType>			<xs:sequence>				<xs:element ref="label" minOccurs="0"/>				<xs:group ref="statement"/>				<xs:element name="do_while">					<xs:complexType>						<xs:sequence>							<xs:element ref="boolean"/>						</xs:sequence>					</xs:complexType>				</xs:element>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="while">		<xs:complexType>			<xs:sequence>				<xs:element ref="label" minOccurs="0"/>				<xs:element ref="boolean"/>				<xs:group ref="statement"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="empty"/>	<xs:element name="sleep">		<xs:complexType>			<xs:sequence>				<xs:element ref="duration"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="set">		<xs:complexType>			<xs:sequence>				<xs:element name="context" type="xs:string"/>				<xs:element name="correlations">					<xs:complexType>						<xs:sequence>							<xs:group ref="set_correlation"/>						</xs:sequence>					</xs:complexType>				</xs:element>				<xs:element ref="pattern" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:group name="set_correlation">		<xs:sequence>			<xs:element name="correlation" maxOccurs="unbounded">				<xs:complexType>					<xs:sequence>						<xs:element name="key" type="xs:string"/>						<xs:element name="with">							<xs:complexType>								<xs:sequence>									<xs:group ref="sll_path_expr"/>								</xs:sequence>							</xs:complexType>						</xs:element>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="variable">		<xs:sequence>			<xs:element name="variable">				<xs:complexType>					<xs:sequence>						<xs:element ref="qname"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="sll_path_expr">		<xs:sequence>			<xs:group ref="variable"/>			<xs:element name="path" minOccurs="0">				<xs:complexType>					<xs:sequence>						<xs:element name="steps" minOccurs="0">							<xs:complexType>								<xs:sequence>									<xs:group ref="stepExpr" maxOccurs="unbounded"/>								</xs:sequence>							</xs:complexType>						</xs:element>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:element name="get">		<xs:complexType>			<xs:sequence>				<xs:element name="context" type="xs:string"/>				<xs:element name="correlations">					<xs:complexType>						<xs:sequence>							<xs:element ref="correlation" maxOccurs="unbounded"/>						</xs:sequence>					</xs:complexType>				</xs:element>				<xs:element ref="pattern" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="key" type="xs:string"/>	<xs:element name="correlation">		<xs:complexType>			<xs:sequence>				<xs:group ref="sll_path_expr"/>				<xs:element name="with">					<xs:complexType>						<xs:sequence>							<xs:element name="key" type="xs:string"/>						</xs:sequence>					</xs:complexType>				</xs:element>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="block">		<xs:complexType>			<xs:sequence>				<xs:element ref="label" minOccurs="0"/>				<xs:element ref="statements" minOccurs="0" maxOccurs="unbounded"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="sequence">		<xs:complexType>			<xs:sequence>				<xs:element ref="statements"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="parallel">		<xs:complexType>			<xs:sequence>				<xs:element ref="statements"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="unordered">		<xs:complexType>			<xs:sequence>				<xs:element ref="statements"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<!-- ================================= -->	<!-- ================================= -->	<!-- expressions -->	<!-- ================================= -->	<!-- ================================= -->	<xs:group name="expression">		<xs:choice>			<xs:element ref="assignment"/>			<xs:element ref="boolean"/>			<xs:element ref="duration"/>			<xs:group ref="exprSingle"/>		</xs:choice>	</xs:group>	<xs:element name="expressions">		<xs:complexType>			<xs:sequence>				<xs:group ref="exprSingle"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:group name="asignment_group">		<xs:sequence>			<xs:element ref="qname" minOccurs="0"/>			<xs:choice>				<xs:group ref="statement" minOccurs="0"/>			</xs:choice>		</xs:sequence>	</xs:group>	<xs:element name="assignment">		<xs:complexType>			<xs:choice>				<xs:element ref="expressions"/>				<xs:group ref="asignment_group"/>			</xs:choice>		</xs:complexType>	</xs:element>	<xs:element name="boolean">		<xs:complexType>			<xs:choice>				<xs:element ref="expressions"/>				<xs:group ref="exprSingle"/>			</xs:choice>		</xs:complexType>	</xs:element>	<xs:element name="duration">		<xs:complexType>			<xs:choice>				<xs:element ref="expressions"/>				<xs:group ref="exprSingle"/>			</xs:choice>		</xs:complexType>	</xs:element>	<!-- ================================= -->	<!-- ================================= -->	<!-- semantic and CDATA -->	<xs:element name="semantic">		<xs:complexType>			<xs:choice>				<xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>			</xs:choice>		</xs:complexType>	</xs:element>	<xs:element name="qname">		<xs:complexType mixed="true">			<xs:all>				<xs:element name="namespace_name" type="xs:string" minOccurs="0"/>				<xs:element name="local_name" type="xs:string"/>			</xs:all>		</xs:complexType>	</xs:element>	<!--	<xs:element name="element">		<xs:complexType>			<xs:sequence>				<xs:element name="name" type="xs:string"/>				<xs:element ref="content" minOccurs="0"/>				<xs:group ref="attributeList" minOccurs="0"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:element name="content">		<xs:complexType>			<xs:choice maxOccurs="unbounded">				<xs:element name="text" type="xs:string"/>				<xs:element ref="element"/>			</xs:choice>		</xs:complexType>	</xs:element>-->	<xs:group name="constructor">		<xs:annotation>			<xs:documentation>constructor</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="elementConstructor"/>			<xs:group ref="xmlComment"/>			<xs:group ref="xmlPI"/>		</xs:choice>	</xs:group>	<xs:group name="elementConstructor">		<xs:sequence>			<xs:element name="xml_element">				<xs:complexType>					<xs:sequence>						<xs:element name="name">							<xs:complexType>								<xs:group ref="qname"/>							</xs:complexType>						</xs:element>						<xs:group ref="attributeList" minOccurs="0"/>						<xs:group ref="mixedElementContent" minOccurs="0"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="attributeList">		<xs:sequence>			<xs:element name="attributes">				<xs:complexType>					<xs:group ref="attributeDef" minOccurs="0" maxOccurs="unbounded"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="attributeDef">		<xs:sequence>			<xs:element ref="attribute"/>		</xs:sequence>	</xs:group>	<xs:element name="attribute">		<xs:complexType>			<xs:sequence>				<xs:element name="name">					<xs:complexType>						<xs:group ref="qname"/>					</xs:complexType>				</xs:element>				<xs:group ref="attributeValue"/>			</xs:sequence>		</xs:complexType>	</xs:element>	<xs:group name="attributeValue">		<xs:sequence>			<xs:element name="value">				<xs:complexType>					<xs:choice maxOccurs="unbounded">						<xs:element name="attribute_content" type="xs:string"/>						<xs:group ref="attributeEnclosedExpr"/>					</xs:choice>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="mixedElementContent">		<xs:sequence>			<xs:element name="content">				<xs:complexType>					<xs:group ref="elementContent" minOccurs="0" maxOccurs="unbounded"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="elementContent">		<xs:choice>			<xs:group ref="elementConstructor"/>			<xs:element name="text" type="xs:string"/>			<xs:group ref="xmlComment"/>			<xs:group ref="xmlPI"/>			<xs:group ref="enclosedExpr"/>		</xs:choice>	</xs:group>	<xs:group name="xmlComment">		<xs:sequence>			<xs:element name="xml_comment" type="xs:string"/>		</xs:sequence>	</xs:group>	<xs:group name="xmlPI">		<xs:sequence>			<xs:element name="xml_pi" type="xs:string"/>		</xs:sequence>	</xs:group>	<!-- XQuery ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->	<xs:group name="xpointer">		<xs:annotation>			<xs:documentation>xpointer</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:element name="xpointer">				<xs:complexType>					<xs:group ref="expr"/>				</xs:complexType>			</xs:element>			<xs:element name="xpointer_id" type="xs:string"/>		</xs:choice>	</xs:group>	<xs:group name="xpath">		<xs:choice>			<xs:group ref="module" minOccurs="0"/>		</xs:choice>	</xs:group>	<xs:group name="module">		<xs:annotation>			<xs:documentation>module</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="libraryModule"/>			<xs:group ref="mainModule"/>		</xs:choice>	</xs:group>	<xs:group name="mainModule">		<xs:annotation>			<xs:documentation>main module</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="main_module">				<xs:complexType>					<xs:sequence>						<xs:group ref="prolog"/>						<xs:group ref="queryBody"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="libraryModule">		<xs:annotation>			<xs:documentation>library module</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="library_module">				<xs:complexType>					<xs:sequence>						<xs:group ref="moduleDecl"/>						<xs:group ref="prolog"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="moduleDecl">		<xs:annotation>			<xs:documentation>module declaration</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="module">				<xs:complexType>					<xs:sequence>						<xs:element name="name" type="xs:string"/>						<xs:element name="uri" type="xs:string"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="prolog">		<xs:annotation>			<xs:documentation>xquery prolog</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:group ref="version"/>			<xs:element name="prolog">				<xs:complexType>					<xs:choice minOccurs="0" maxOccurs="unbounded">						<xs:choice>							<xs:group ref="namespaceDecl"/>							<xs:group ref="defaultNamespaceDecl"/>							<xs:group ref="functionDecl"/>							<xs:group ref="varDecl"/>						</xs:choice>						<xs:group ref="moduleImport"/>					</xs:choice>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="version">		<xs:annotation>			<xs:documentation>xquery version</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="version" type="xs:decimal"/>		</xs:sequence>	</xs:group>	<xs:group name="namespaceDecl">		<xs:annotation>			<xs:documentation>namespace declaration</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="namespace">				<xs:complexType>					<xs:sequence>						<xs:element name="name" type="xs:string"/>						<xs:element name="uri" type="xs:string"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="defaultNamespaceDecl">		<xs:annotation>			<xs:documentation>default namespace declaration</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:element name="default_namespace" type="xs:string"/>			<xs:element name="default_function_namespace" type="xs:string"/>		</xs:choice>	</xs:group>	<xs:group name="varDecl">		<xs:annotation>			<xs:documentation>variable declaration</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="variable">				<xs:complexType>					<xs:sequence>						<xs:group ref="typeDeclaration" minOccurs="0"/>						<xs:element ref="identifier"/>						<xs:element name="value">							<xs:complexType>								<xs:group ref="expr"/>							</xs:complexType>						</xs:element>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="moduleImport">		<xs:annotation>			<xs:documentation>module import</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:choice>				<xs:element name="import_module_namespace">					<xs:complexType>						<xs:sequence>							<xs:element name="identifier" type="xs:string"/>							<xs:element name="target" type="xs:string"/>						</xs:sequence>					</xs:complexType>				</xs:element>				<xs:element name="import_module">					<xs:complexType>						<xs:sequence>							<xs:element name="target" type="xs:string"/>						</xs:sequence>					</xs:complexType>				</xs:element>			</xs:choice>			<xs:element name="location" type="xs:string" minOccurs="0"/>		</xs:sequence>	</xs:group>	<xs:group name="functionDecl">		<xs:annotation>			<xs:documentation>function declaration</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="function">				<xs:complexType>					<xs:sequence>						<xs:element name="identifier" type="xs:string"/>						<xs:group ref="paramList" minOccurs="0"/>						<xs:group ref="returnType" minOccurs="0"/>						<xs:group ref="functionBody"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="functionBody">		<xs:annotation>			<xs:documentation>function body</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="body">				<xs:complexType>					<xs:group ref="expr"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="returnType">		<xs:annotation>			<xs:documentation>return type</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="return">				<xs:complexType>					<xs:group ref="sequenceType"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="paramList">		<xs:annotation>			<xs:documentation>parameter list</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="parameters">				<xs:complexType>					<xs:sequence>						<xs:element name="variable" maxOccurs="unbounded">							<xs:complexType>								<xs:group ref="param"/>							</xs:complexType>						</xs:element>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="param">		<xs:annotation>			<xs:documentation>parameter</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element ref="type" minOccurs="0"/>			<xs:element ref="identifier"/>		</xs:sequence>	</xs:group>	<xs:group name="typeDeclaration">		<xs:annotation>			<xs:documentation>type declaration</xs:documentation>		</xs:annotation>		<xs:sequence/>	</xs:group>	<xs:group name="sequenceType">		<xs:annotation>			<xs:documentation>sequence type</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:element name="empty"/>			<xs:sequence>				<xs:group ref="itemType"/>				<xs:group ref="occurrenceIndicator" minOccurs="0"/>			</xs:sequence>		</xs:choice>	</xs:group>	<xs:group name="occurrenceIndicator">		<xs:annotation>			<xs:documentation>occurrence indicator</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="occurrence">				<xs:simpleType>					<xs:restriction base="xs:string">						<xs:enumeration value="star"/>						<xs:enumeration value="plus"/>						<xs:enumeration value="question"/>					</xs:restriction>				</xs:simpleType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="itemType">		<xs:annotation>			<xs:documentation>item type</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:element name="item"/>			<xs:group ref="kindTest"/>			<xs:group ref="atomicType"/>		</xs:choice>	</xs:group>	<xs:group name="singleType">		<xs:annotation>			<xs:documentation>single type</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:group ref="atomicType"/>			<xs:element name="question" minOccurs="0"/>		</xs:sequence>	</xs:group>	<xs:group name="atomicType">		<xs:annotation>			<xs:documentation>atomic type</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="atomic">				<xs:complexType>					<xs:group ref="qname"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="queryBody">		<xs:annotation>			<xs:documentation>query body</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="expr"/>		</xs:choice>	</xs:group>	<xs:group name="expressions">		<xs:sequence>			<xs:element name="expressions">				<xs:complexType>					<xs:group ref="exprSingle" maxOccurs="unbounded"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="expr">		<xs:annotation>			<xs:documentation>expressions</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="expressions">				<xs:complexType>					<xs:group ref="exprSingle" maxOccurs="unbounded"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="exprSingle">		<xs:annotation>			<xs:documentation>single expression</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="expression">				<xs:complexType>					<xs:choice>						<xs:group ref="flworExpr"/>						<xs:group ref="quantifiedExpr"/>						<xs:group ref="ifExpr"/>						<xs:group ref="orExpr"/>						<xs:group ref="expr_statement"/>					</xs:choice>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="flworExpr">		<xs:annotation>			<xs:documentation>for let where expression</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="flwor">				<xs:complexType>					<xs:sequence>						<xs:choice maxOccurs="unbounded">							<xs:group ref="forClause"/>							<xs:group ref="letClause"/>						</xs:choice>						<xs:group ref="whereClause" minOccurs="0"/>						<xs:group ref="orderByClause" minOccurs="0"/>						<xs:element name="return">							<xs:complexType>								<xs:group ref="exprSingle"/>							</xs:complexType>						</xs:element>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="whereClause">		<xs:annotation>			<xs:documentation>where clause</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="where">				<xs:complexType>					<xs:group ref="expr"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="forClause">		<xs:annotation>			<xs:documentation>for clause</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="for">				<xs:complexType>					<xs:group ref="inVarBinding" maxOccurs="unbounded"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="letClause">		<xs:annotation>			<xs:documentation>let clause</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="let">				<xs:complexType>					<xs:group ref="letVarBinding" maxOccurs="unbounded"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="in">		<xs:sequence>			<xs:element name="in">				<xs:complexType>					<xs:group ref="exprSingle"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="inVarBinding">		<xs:annotation>			<xs:documentation>in variable binding</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="variable_binding">				<xs:complexType>					<xs:sequence>						<xs:element ref="identifier"/>						<xs:group ref="typeDeclaration" minOccurs="0"/>						<xs:group ref="positionalVar" minOccurs="0"/>						<xs:group ref="in"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="positionalVar">		<xs:annotation>			<xs:documentation>positional variable</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="positional">				<xs:complexType>					<xs:sequence>						<xs:element ref="identifier"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="letVarBinding">		<xs:annotation>			<xs:documentation>let variable binding</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="variable_binding">				<xs:complexType>					<xs:sequence>						<xs:element ref="identifier"/>						<xs:group ref="typeDeclaration" minOccurs="0"/>						<xs:element name="assign">							<xs:complexType>								<xs:group ref="exprSingle"/>							</xs:complexType>						</xs:element>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="orderByClause">		<xs:annotation>			<xs:documentation>order by clause</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="order_by">				<xs:complexType>					<xs:group ref="orderSpecList"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="orderSpecList">		<xs:annotation>			<xs:documentation>order specification list</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="orderSpec" maxOccurs="unbounded"/>		</xs:choice>	</xs:group>	<xs:group name="orderSpec">		<xs:annotation>			<xs:documentation>order specificator</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:group ref="exprSingle"/>			<xs:group ref="orderModifier"/>		</xs:sequence>	</xs:group>	<xs:group name="orderModifier">		<xs:annotation>			<xs:documentation>order modifier</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:element name="ascending">				<xs:complexType>					<xs:choice minOccurs="0">						<xs:element name="empty_greatest"/>						<xs:element name="empty_least"/>					</xs:choice>				</xs:complexType>			</xs:element>			<xs:element name="descending">				<xs:complexType>					<xs:choice minOccurs="0">						<xs:element name="empty_greatest"/>						<xs:element name="empty_least"/>					</xs:choice>				</xs:complexType>			</xs:element>		</xs:choice>	</xs:group>	<xs:group name="quantifiedExpr">		<xs:annotation>			<xs:documentation>quantified expression</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="quantified">				<xs:complexType>					<xs:sequence>						<xs:choice>							<xs:element name="some"/>							<xs:element name="every"/>						</xs:choice>						<xs:group ref="quantifiedInVarBinding" maxOccurs="unbounded"/>						<xs:element name="satisfies">							<xs:complexType>								<xs:group ref="exprSingle"/>							</xs:complexType>						</xs:element>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="quantifiedInVarBinding">		<xs:annotation>			<xs:documentation>quantified in variable binding</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="variable_binding">				<xs:complexType>					<xs:sequence>						<xs:element ref="identifier"/>						<xs:group ref="typeDeclaration" minOccurs="0"/>						<xs:group ref="in"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="ifExpr">		<xs:annotation>			<xs:documentation>if expression</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="if">				<xs:complexType>					<xs:sequence>						<xs:group ref="expr"/>						<xs:element name="then">							<xs:complexType>								<xs:group ref="exprSingle"/>							</xs:complexType>						</xs:element>						<xs:element name="else">							<xs:complexType>								<xs:group ref="exprSingle"/>							</xs:complexType>						</xs:element>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="orExpr">		<xs:annotation>			<xs:documentation>or expression</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="andExpr"/>			<xs:element name="or">				<xs:complexType>					<xs:sequence>						<xs:group ref="orExpr"/>						<xs:group ref="andExpr"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:choice>	</xs:group>	<xs:group name="andExpr">		<xs:annotation>			<xs:documentation>and expression</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="instanceOf"/>			<xs:element name="and">				<xs:complexType>					<xs:sequence>						<xs:group ref="andExpr"/>						<xs:group ref="instanceOf"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:choice>	</xs:group>	<xs:group name="instanceOf">		<xs:annotation>			<xs:documentation>instance of</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="treatAs"/>			<xs:element name="instance_of">				<xs:complexType>					<xs:sequence>						<xs:group ref="treatAs"/>						<xs:group ref="sequenceType"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:choice>	</xs:group>	<xs:group name="treatAs">		<xs:annotation>			<xs:documentation>treat as</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="castableAs"/>			<xs:element name="treat">				<xs:complexType>					<xs:sequence>						<xs:group ref="castableAs"/>						<xs:group ref="sequenceType"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:choice>	</xs:group>	<xs:group name="castableAs">		<xs:annotation>			<xs:documentation>castable as</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="castExpr"/>			<xs:element name="castable">				<xs:complexType>					<xs:sequence>						<xs:group ref="castExpr"/>						<xs:group ref="singleType"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:choice>	</xs:group>	<xs:group name="castExpr">		<xs:annotation>			<xs:documentation>cast as</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="comparisonExpr"/>			<xs:element name="cast">				<xs:complexType>					<xs:sequence>						<xs:group ref="comparisonExpr"/>						<xs:group ref="singleType"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:choice>	</xs:group>	<xs:group name="comparisonExpr">		<xs:annotation>			<xs:documentation>comparison expression</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="rangeExpr"/>			<xs:choice>				<xs:element name="before">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>				<xs:element name="after">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>				<xs:element name="v_eq">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>				<xs:element name="v_ne">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>				<xs:element name="v_lt">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>				<xs:element name="v_le">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>				<xs:element name="v_gt">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>				<xs:element name="v_ge">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>				<xs:element name="eq">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>				<xs:element name="neq">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>				<xs:element name="gt">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>				<xs:element name="gteq">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>				<xs:element name="lt">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>				<xs:element name="lteq">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>				<xs:element name="is">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>				<xs:element name="isnot">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>				<xs:element name="andeq">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>				<xs:element name="oreq">					<xs:complexType>						<xs:group ref="rangeExpr" minOccurs="2" maxOccurs="2"/>					</xs:complexType>				</xs:element>			</xs:choice>		</xs:choice>	</xs:group>	<xs:group name="rangeExpr">		<xs:annotation>			<xs:documentation>range expression</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="additiveExpr"/>			<xs:element name="to">				<xs:complexType>					<xs:sequence>						<xs:group ref="additiveExpr"/>						<xs:group ref="additiveExpr"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:choice>	</xs:group>	<xs:group name="additiveExpr">		<xs:annotation>			<xs:documentation>additive expression</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="multiplicativeExpr"/>			<xs:choice>				<xs:element name="plus">					<xs:complexType>						<xs:sequence>							<xs:group ref="additiveExpr"/>							<xs:group ref="multiplicativeExpr"/>						</xs:sequence>					</xs:complexType>				</xs:element>				<xs:element name="minus">					<xs:complexType>						<xs:sequence>							<xs:group ref="additiveExpr"/>							<xs:group ref="multiplicativeExpr"/>						</xs:sequence>					</xs:complexType>				</xs:element>			</xs:choice>		</xs:choice>	</xs:group>	<xs:group name="multiplicativeExpr">		<xs:annotation>			<xs:documentation>multiplicative expression</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="unaryExpr"/>			<xs:choice>				<xs:element name="star">					<xs:complexType>						<xs:sequence>							<xs:group ref="multiplicativeExpr"/>							<xs:group ref="unaryExpr"/>						</xs:sequence>					</xs:complexType>				</xs:element>				<xs:element name="div">					<xs:complexType>						<xs:sequence>							<xs:group ref="multiplicativeExpr"/>							<xs:group ref="unaryExpr"/>						</xs:sequence>					</xs:complexType>				</xs:element>				<xs:element name="idiv">					<xs:complexType>						<xs:sequence>							<xs:group ref="multiplicativeExpr"/>							<xs:group ref="unaryExpr"/>						</xs:sequence>					</xs:complexType>				</xs:element>				<xs:element name="mod">					<xs:complexType>						<xs:sequence>							<xs:group ref="multiplicativeExpr"/>							<xs:group ref="unaryExpr"/>						</xs:sequence>					</xs:complexType>				</xs:element>			</xs:choice>		</xs:choice>	</xs:group>	<xs:group name="unaryExpr">		<xs:annotation>			<xs:documentation>unary expression</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="unionExpr"/>			<xs:element name="unary_minus">				<xs:complexType>					<xs:group ref="unionExpr"/>				</xs:complexType>			</xs:element>			<xs:element name="unary_plus">				<xs:complexType>					<xs:group ref="unionExpr"/>				</xs:complexType>			</xs:element>		</xs:choice>	</xs:group>	<xs:group name="unionExpr">		<xs:annotation>			<xs:documentation>union expression</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="intersectExpr"/>			<xs:element name="union">				<xs:complexType>					<xs:sequence>						<xs:group ref="unionExpr"/>						<xs:group ref="intersectExpr"/>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:choice>	</xs:group>	<xs:group name="intersectExpr">		<xs:annotation>			<xs:documentation>intersect expression</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="pathExpr"/>			<xs:choice>				<xs:element name="intersect">					<xs:complexType>						<xs:sequence>							<xs:group ref="intersectExpr"/>							<xs:group ref="pathExpr"/>						</xs:sequence>					</xs:complexType>				</xs:element>				<xs:element name="except">					<xs:complexType>						<xs:sequence>							<xs:group ref="intersectExpr"/>							<xs:group ref="pathExpr"/>						</xs:sequence>					</xs:complexType>				</xs:element>			</xs:choice>		</xs:choice>	</xs:group>	<xs:group name="pathExpr">		<xs:annotation>			<xs:documentation>path expression</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="stepExpr"/>			<xs:element name="relative_path">				<xs:complexType>					<xs:group ref="relativePathExpr"/>				</xs:complexType>			</xs:element>			<xs:element name="absolute_path">				<xs:complexType>					<xs:group ref="relativePathExpr" minOccurs="0"/>				</xs:complexType>			</xs:element>			<xs:element name="absolute_dslash">				<xs:complexType>					<xs:group ref="relativePathExpr"/>				</xs:complexType>			</xs:element>		</xs:choice>	</xs:group>	<xs:group name="relativePathExpr">		<xs:annotation>			<xs:documentation>relative path expression</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="stepExpr" maxOccurs="unbounded"/>		</xs:choice>	</xs:group>	<xs:group name="stepExpr">		<xs:annotation>			<xs:documentation>step expression</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="axisStep"/>			<xs:group ref="filterStep"/>		</xs:choice>	</xs:group>	<xs:group name="axisStep">		<xs:annotation>			<xs:documentation>axis expression</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="step">				<xs:complexType>					<xs:sequence>						<xs:group ref="forwardOrReverseStep"/>						<xs:element name="predicates">							<xs:complexType>								<xs:group ref="predicates" minOccurs="0"/>							</xs:complexType>						</xs:element>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="predicates">		<xs:annotation>			<xs:documentation>predicates</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="predicate" minOccurs="0" maxOccurs="unbounded"/>		</xs:choice>	</xs:group>	<xs:group name="predicate">		<xs:annotation>			<xs:documentation>predicate</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="predicate">				<xs:complexType>					<xs:group ref="expr"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="forwardOrReverseStep">		<xs:annotation>			<xs:documentation>forward or reverse step</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:sequence>				<xs:group ref="axis"/>				<xs:group ref="nodetestgroup"/>			</xs:sequence>			<xs:group ref="abbrevStep"/>		</xs:choice>	</xs:group>	<xs:group name="abbrevStep">		<xs:annotation>			<xs:documentation>abbrev step</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:choice>				<xs:element name="at">					<xs:complexType>						<xs:group ref="nodetestgroup"/>					</xs:complexType>				</xs:element>				<xs:group ref="nodetestgroup"/>			</xs:choice>			<xs:element name="parent"/>		</xs:choice>	</xs:group>	<xs:group name="forwardAxisSpecifier">		<xs:annotation>			<xs:documentation>forward axis specifier</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:element name="child"/>			<xs:element name="self"/>			<xs:element name="attribute"/>			<xs:element name="descendant"/>			<xs:element name="descendant_or_self"/>			<xs:element name="following_sibling"/>		</xs:choice>	</xs:group>	<xs:group name="axis">		<xs:annotation>			<xs:documentation>axis</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="axis">				<xs:complexType>					<xs:choice>						<xs:group ref="reverseAxisSpecifier"/>						<xs:group ref="forwardAxisSpecifier"/>					</xs:choice>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="reverseAxisSpecifier">		<xs:annotation>			<xs:documentation>reverse axis specifier</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:element name="parent"/>			<xs:element name="ancestor"/>			<xs:element name="ancestor_or_self"/>			<xs:element name="preceding_sibling"/>		</xs:choice>	</xs:group>	<xs:group name="nodetestgroup">		<xs:sequence>			<xs:annotation>				<xs:documentation>node test</xs:documentation>			</xs:annotation>			<xs:element name="nodetest">				<xs:complexType>					<xs:choice>						<xs:element name="kind">							<xs:complexType>								<xs:sequence>									<xs:group ref="kindTest"/>								</xs:sequence>							</xs:complexType>						</xs:element>						<xs:element name="name">							<xs:complexType>								<xs:sequence>									<xs:group ref="nameTest"/>								</xs:sequence>							</xs:complexType>						</xs:element>					</xs:choice>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="nameTest">		<xs:annotation>			<xs:documentation>name test</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="wildCard"/>			<xs:element ref="identifier"/>		</xs:choice>	</xs:group>	<xs:group name="wildCard">		<xs:annotation>			<xs:documentation>wild card</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:element name="prefix_wildcard" type="xs:string"/>			<xs:element name="wildcard" type="xs:string"/>		</xs:choice>	</xs:group>	<xs:group name="filterStep">		<xs:annotation>			<xs:documentation>filter step</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:group ref="primaryExpr"/>			<xs:group ref="predicates"/>		</xs:sequence>	</xs:group>	<xs:group name="primaryExpr">		<xs:annotation>			<xs:documentation>primary expression</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:group ref="functionCall"/>			<xs:group ref="contextItemExpr"/>			<xs:group ref="parenthesizedExpr"/>			<xs:element name="variable">				<xs:complexType>					<xs:sequence>						<xs:element ref="identifier"/>					</xs:sequence>				</xs:complexType>			</xs:element>			<xs:group ref="constructor"/>			<xs:group ref="literal"/>		</xs:choice>	</xs:group>	<xs:group name="literal">		<xs:annotation>			<xs:documentation>literal</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:element name="string_literal" type="xs:string"/>			<xs:group ref="numericLiteral"/>		</xs:choice>	</xs:group>	<xs:group name="numericLiteral">		<xs:annotation>			<xs:documentation>numeric literal</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:element name="double_literal" type="xs:double"/>			<xs:element name="decimal_literal" type="xs:decimal"/>			<xs:element name="integer_literal" type="xs:int"/>		</xs:choice>	</xs:group>	<xs:group name="parenthesizedExpr">		<xs:annotation>			<xs:documentation>parenthesized expression</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="parenthesized">				<xs:complexType>					<xs:group ref="expr" minOccurs="0"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="functionCall">		<xs:annotation>			<xs:documentation>function call</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="function">				<xs:complexType>					<xs:sequence>						<xs:element ref="identifier"/>						<xs:element name="parameters" minOccurs="0">							<xs:complexType>								<xs:group ref="functionParameters"/>							</xs:complexType>						</xs:element>					</xs:sequence>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="functionParameters">		<xs:annotation>			<xs:documentation>function parameters</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded">				<xs:complexType>					<xs:group ref="exprSingle"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="contextItemExpr">		<xs:annotation>			<xs:documentation>context item expression</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="self"/>		</xs:sequence>	</xs:group>	<xs:element name="identifier">		<xs:complexType>			<xs:group ref="qname"/>		</xs:complexType>	</xs:element>	<xs:group name="kindTest">		<xs:annotation>			<xs:documentation>kind test</xs:documentation>		</xs:annotation>		<xs:choice>			<xs:element name="text"/>			<xs:element name="node"/>			<xs:element name="element"/>			<xs:element name="attribute"/>			<xs:element name="comment"/>			<xs:element name="processing_instruction"/>			<xs:element name="document_node"/>			<xs:element ref="identifier"/>		</xs:choice>	</xs:group>	<xs:group name="qname">		<xs:annotation>			<xs:documentation>qualified name</xs:documentation>		</xs:annotation>		<xs:all>			<xs:element name="namespace_name" type="xs:string" minOccurs="0"/>			<xs:element name="local_name" type="xs:string"/>		</xs:all>	</xs:group>	<xs:group name="enclosedExpr">		<xs:annotation>			<xs:documentation>enclosed expression</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="expression_enclosed">				<xs:complexType>					<xs:group ref="expr"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group>	<xs:group name="attributeEnclosedExpr">		<xs:annotation>			<xs:documentation>enclosed attribute expression</xs:documentation>		</xs:annotation>		<xs:sequence>			<xs:element name="attribute_enclosed">				<xs:complexType>					<xs:group ref="expr"/>				</xs:complexType>			</xs:element>		</xs:sequence>	</xs:group></xs:schema>