<!-- by Tis Veugen -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<xsd:annotation>
		<xsd:documentation xml:lang="en">
			 Bridge Bidding Notation 1.0
			 XSD version 1.1
		</xsd:documentation>
	</xsd:annotation>
	<xsd:element name="BridgeBiddingNotation" type="tBridgeBiddingNotation"/>

<!-- ==================== tBridgeBiddingNotation ==================== -->
	<xsd:complexType name="tBridgeBiddingNotation">
		<xsd:sequence>
			<xsd:element name="configuration" type="tConfiguration" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="macro" type="tMacro" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="chapter" type="tChapter" minOccurs="1" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="version" type="xsd:string"/>
	</xsd:complexType>

<!-- ==================== tConfiguration ==================== -->
	<xsd:complexType name="tConfiguration">
		<xsd:attribute name="nrColumnsUncontested" type="xsd:nonNegativeInteger" default="2"/>
		<xsd:attribute name="nrColumnsContested" type="xsd:nonNegativeInteger" default="4"/>
	</xsd:complexType>

<!-- ==================== tMacroId ==================== -->
	<xsd:simpleType name="tMacroId">
		<xsd:restriction base="xsd:ID"/>
	</xsd:simpleType>

<!-- ==================== tMacroRef ==================== -->
	<xsd:simpleType name="tMacroRef">
		<xsd:restriction base="xsd:IDREF"/>
	</xsd:simpleType>

<!-- ==================== tMacro ==================== -->
	<xsd:complexType name="tMacro">
		<xsd:sequence>
			<xsd:element name="meaning" type="tMeaning" minOccurs="1" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="id" type="tMacroId"/>
	</xsd:complexType>

<!-- ==================== tChapterId ==================== -->
	<xsd:simpleType name="tChapterId">
		<xsd:restriction base="xsd:ID"/>
	</xsd:simpleType>

<!-- ==================== tChapterRef ==================== -->
	<xsd:simpleType name="tChapterRef">
		<xsd:restriction base="xsd:IDREF"/>
	</xsd:simpleType>

<!-- ==================== tChapter ==================== -->
	<xsd:complexType name="tChapter">
		<xsd:sequence>
			<xsd:element name="header" type="xsd:string" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="text" type="xsd:string" minOccurs="0" maxOccurs="1"/>
			<xsd:choice>
				<xsd:element name="chapter" type="tChapter" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element name="turn" type="tTurn" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:choice>
			<xsd:element name="footer" type="xsd:string" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
		<xsd:attribute name="id" type="tChapterId"/>
		<xsd:attribute name="contested" type="tYesNo" default="no"/>
		<xsd:attribute name="nrColumns" type="xsd:nonNegativeInteger"/>
		<xsd:attribute name="show" type="tYesNo" default="yes"/>
	</xsd:complexType>

<!-- ==================== tYesNo ==================== -->
	<xsd:simpleType name="tYesNo">
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="yes"/>
			<xsd:enumeration value="no"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tForcing ==================== -->
	<xsd:simpleType name="tForcing">
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="not"/>
			<xsd:enumeration value="invite"/>
			<xsd:enumeration value="round"/>
			<xsd:enumeration value="game"/>
			<xsd:enumeration value="slam"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tCategory ==================== -->
	<xsd:simpleType name="tCategory">
		<xsd:restriction base="xsd:NMTOKENS">
			<xsd:enumeration value="asking"/>
			<xsd:enumeration value="conventional"/>
			<xsd:enumeration value="natural"/>
			<xsd:enumeration value="relay"/>
			<xsd:enumeration value="splinter"/>
			<xsd:enumeration value="transfer"/>
			<xsd:enumeration value="4thColor"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tWho ==================== -->
	<xsd:simpleType name="tWho">
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="us"/>
			<xsd:enumeration value="them"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tOwner ==================== -->
	<xsd:simpleType name="tOwner">
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="me"/>
			<xsd:enumeration value="partner"/>
			<xsd:enumeration value="us"/>
			<xsd:enumeration value="left"/>
			<xsd:enumeration value="right"/>
			<xsd:enumeration value="them"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tOwns ==================== -->
	<xsd:simpleType name="tOwns">
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="yes"/>
			<xsd:enumeration value="not"/>
			<xsd:enumeration value="ask"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tCallId ==================== -->
	<xsd:simpleType name="tCallId">
		<xsd:restriction base="xsd:ID"/>
	</xsd:simpleType>

<!-- ==================== tCallRef ==================== -->
	<xsd:simpleType name="tCallRef">
		<xsd:restriction base="xsd:IDREF"/>
	</xsd:simpleType>

<!-- ==================== tCall ==================== -->
	<xsd:complexType name="tCall">
		<xsd:sequence>
			<xsd:choice>
				<xsd:element name="pass"/>
				<xsd:element name="dbl"/>
				<xsd:element name="rdb"/>
				<xsd:element name="bid" type="tBid"/>
				<xsd:element name="any"/>
				<xsd:element name="void"/>
			</xsd:choice>
		</xsd:sequence>
		<xsd:attribute name="id" type="tCallId"/>
		<xsd:attribute name="opp" type="tWho" default="us"/>
		<xsd:attribute name="summary" type="tYesNo" default="no"/>
	</xsd:complexType>

<!-- ==================== tTurn ==================== -->
	<xsd:complexType name="tTurn">
		<xsd:sequence>
			<xsd:element name="call" type="tCall"/>
			<xsd:element name="description" type="tDescription" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="meaning" type="tMeaning" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="turn" type="tTurn" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>

<!-- ==================== tLevel ==================== -->
	<xsd:simpleType name="tLevel">
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="1"/>
			<xsd:enumeration value="2"/>
			<xsd:enumeration value="3"/>
			<xsd:enumeration value="4"/>
			<xsd:enumeration value="5"/>
			<xsd:enumeration value="6"/>
			<xsd:enumeration value="7"/>
			<xsd:enumeration value="lowest"/>
			<xsd:enumeration value="jump1"/>
			<xsd:enumeration value="jump2"/>
			<xsd:enumeration value="jump3"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tDenomVal ==================== -->
	<xsd:simpleType name="tDenomVal">
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="C"/>
			<xsd:enumeration value="D"/>
			<xsd:enumeration value="H"/>
			<xsd:enumeration value="S"/>
			<xsd:enumeration value="N"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tDenomVals ==================== -->
	<xsd:simpleType name="tDenomVals">
		<xsd:list itemType="tDenomVal"/>
	</xsd:simpleType>

<!-- ==================== tDenomId ==================== -->
	<xsd:simpleType name="tDenomId">
		<xsd:restriction base="xsd:ID"/>
	</xsd:simpleType>

<!-- ==================== tDenomRef ==================== -->
	<xsd:simpleType name="tDenomRef">
		<xsd:restriction base="xsd:IDREF"/>
	</xsd:simpleType>

<!-- ==================== tDenomRel ==================== -->
	<xsd:complexType name="tDenomRel">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">
			  Use exactly 1 attribute!
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="val" type="tDenomVal"/>
		<xsd:attribute name="denomRef" type="tDenomRef"/>
		<xsd:attribute name="bidRef" type="tBidRef"/>
	</xsd:complexType>

<!-- ==================== tDenomShow ==================== -->
	<xsd:simpleType name="tDenomShow">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[a-z]|[A-Z]"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tDenom ==================== -->
	<xsd:complexType name="tDenom">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">
				Use at most 1 tDenom attribute!
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="GE" type="tDenomRel" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="LE" type="tDenomRel" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="GT" type="tDenomRel" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="LT" type="tDenomRel" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="NE" type="tDenomRel" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="EQ" type="tDenomRel" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="id" type="tDenomId"/>
		<xsd:attribute name="val" type="tDenomVals"/>
		<xsd:attribute name="denomRef" type="tDenomRef"/>
		<xsd:attribute name="bidRef" type="tBidRef"/>
		<xsd:attribute name="show" type="tDenomShow"/>
	</xsd:complexType>

<!-- ==================== tBidVal ==================== -->
	<xsd:simpleType name="tBidVal">
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="1C"/>
			<xsd:enumeration value="1D"/>
			<xsd:enumeration value="1H"/>
			<xsd:enumeration value="1S"/>
			<xsd:enumeration value="1N"/>
			<xsd:enumeration value="2C"/>
			<xsd:enumeration value="2D"/>
			<xsd:enumeration value="2H"/>
			<xsd:enumeration value="2S"/>
			<xsd:enumeration value="2N"/>
			<xsd:enumeration value="3C"/>
			<xsd:enumeration value="3D"/>
			<xsd:enumeration value="3H"/>
			<xsd:enumeration value="3S"/>
			<xsd:enumeration value="3N"/>
			<xsd:enumeration value="4C"/>
			<xsd:enumeration value="4D"/>
			<xsd:enumeration value="4H"/>
			<xsd:enumeration value="4S"/>
			<xsd:enumeration value="4N"/>
			<xsd:enumeration value="5C"/>
			<xsd:enumeration value="5D"/>
			<xsd:enumeration value="5H"/>
			<xsd:enumeration value="5S"/>
			<xsd:enumeration value="5N"/>
			<xsd:enumeration value="6C"/>
			<xsd:enumeration value="6D"/>
			<xsd:enumeration value="6H"/>
			<xsd:enumeration value="6S"/>
			<xsd:enumeration value="6N"/>
			<xsd:enumeration value="7C"/>
			<xsd:enumeration value="7D"/>
			<xsd:enumeration value="7H"/>
			<xsd:enumeration value="7S"/>
			<xsd:enumeration value="7N"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tBidVals ==================== -->
	<xsd:simpleType name="tBidVals">
		<xsd:list itemType="tBidVal"/>
	</xsd:simpleType>

<!-- ==================== tBidId ==================== -->
	<xsd:simpleType name="tBidId">
		<xsd:restriction base="xsd:ID"/>
	</xsd:simpleType>

<!-- ==================== tBidRef ==================== -->
	<xsd:simpleType name="tBidRef">
		<xsd:restriction base="xsd:IDREF"/>
	</xsd:simpleType>

<!-- ==================== tBidRel ==================== -->
	<xsd:complexType name="tBidRel">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">
				Use exactly 1 attribute combination:
				1. tBidVal
				2. tLevel + tDenomVal
				3. tLevel + tDenomRef
				3. tLevel + tBidRef
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="val" type="tBidVal"/>
		<xsd:attribute name="level" type="tLevel"/>
		<xsd:attribute name="denomVal" type="tDenomVal"/>
		<xsd:attribute name="denomRef" type="tDenomRef"/>
		<xsd:attribute name="bidRef" type="tBidRef"/>
	</xsd:complexType>

<!-- ==================== tBidShow ==================== -->
	<xsd:simpleType name="tBidShow">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[1234567#][[a-z]|[A-Z]]"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tBid ==================== -->
	<xsd:complexType name="tBid">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">
				No attribute 'tBidVals' needed when described by elements.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:sequence>
				<xsd:element name="GE" type="tBidRel" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element name="LE" type="tBidRel" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element name="GT" type="tBidRel" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element name="LT" type="tBidRel" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element name="NE" type="tBidRel" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element name="EQ" type="tBidRel" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="level" type="tLevel"/>
				<xsd:element name="denom" type="tDenom"/>
			</xsd:sequence>
		</xsd:choice>
		<xsd:attribute name="id" type="tBidId"/>
		<xsd:attribute name="val" type="tBidVals"/>
		<xsd:attribute name="show" type="tBidShow"/>
	</xsd:complexType>

<!-- ==================== tDescription ==================== -->
	<xsd:complexType name="tDescription">
		<xsd:simpleContent>
			<xsd:extension base="xsd:string">
				<xsd:attribute name="forcing" type="tForcing" default="not"/>
				<xsd:attribute name="category" type="tCategory" default="natural"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>

<!-- ==================== tRank ==================== -->
	<xsd:simpleType name="tRank">
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="2"/>
			<xsd:enumeration value="3"/>
			<xsd:enumeration value="4"/>
			<xsd:enumeration value="5"/>
			<xsd:enumeration value="6"/>
			<xsd:enumeration value="7"/>
			<xsd:enumeration value="8"/>
			<xsd:enumeration value="9"/>
			<xsd:enumeration value="T"/>
			<xsd:enumeration value="J"/>
			<xsd:enumeration value="Q"/>
			<xsd:enumeration value="K"/>
			<xsd:enumeration value="A"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tRanks ==================== -->
	<xsd:simpleType name="tRanks">
		<xsd:list itemType="tRank"/>
	</xsd:simpleType>

<!-- ==================== tSuitVal ==================== -->
	<xsd:simpleType name="tSuitVal">
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="C"/>
			<xsd:enumeration value="D"/>
			<xsd:enumeration value="H"/>
			<xsd:enumeration value="S"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tSuitVals ==================== -->
	<xsd:simpleType name="tSuitVals">
		<xsd:list itemType="tSuitVal"/>
	</xsd:simpleType>

<!-- ==================== tSuitId ==================== -->
	<xsd:simpleType name="tSuitId">
		<xsd:restriction base="xsd:ID"/>
	</xsd:simpleType>

<!-- ==================== tSuitRef ==================== -->
	<xsd:simpleType name="tSuitRef">
		<xsd:restriction base="xsd:IDREF"/>
	</xsd:simpleType>

<!-- ==================== tSuitRel ==================== -->
	<xsd:complexType name="tSuitRel">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">
			  Use exactly 1 attribute!
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="val" type="tSuitVal"/>
		<xsd:attribute name="suitRef" type="tSuitRef"/>
		<xsd:attribute name="denomRef" type="tDenomRef"/>
		<xsd:attribute name="bidRef" type="tBidRef"/>
	</xsd:complexType>

<!-- ==================== tSuitShow ==================== -->
	<xsd:simpleType name="tSuitShow">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[a-z]|[A-Z]"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tSuit ==================== -->
	<xsd:complexType name="tSuit">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">
				Use at most 1 tSuit attribute!
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="GE" type="tSuitRel" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="LE" type="tSuitRel" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="GT" type="tSuitRel" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="LT" type="tSuitRel" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="NE" type="tSuitRel" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="EQ" type="tSuitRel" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="id" type="tSuitId"/>
		<xsd:attribute name="val" type="tSuitVals"/>
		<xsd:attribute name="suitRef" type="tSuitRef"/>
		<xsd:attribute name="denomRef" type="tDenomRef"/>
		<xsd:attribute name="bidRef" type="tBidRef"/>
		<xsd:attribute name="show" type="tSuitShow"/>
	</xsd:complexType>

<!-- ==================== tNrCardsVal ==================== -->
	<xsd:simpleType name="tNrCardsVal">
		<xsd:restriction base="xsd:nonNegativeInteger">
			<xsd:maxInclusive value="13"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tNrCards ==================== -->
	<xsd:complexType name="tNrCards">
		<xsd:attribute name="num" type="tNrCardsVal"/>
		<xsd:attribute name="min" type="tNrCardsVal"/>
		<xsd:attribute name="max" type="tNrCardsVal"/>
	</xsd:complexType>

<!-- ==================== tCards ==================== -->
	<xsd:complexType name="tCards">
		<xsd:sequence>
			<xsd:element name="suit" type="tSuit"/>
			<xsd:element name="ranks" type="tRanks"/>
		</xsd:sequence>
	</xsd:complexType>

<!-- ==================== tVulnerable ==================== -->
	<xsd:complexType name="tVulnerable">
		<xsd:attribute name="us" type="tYesNo"/>
		<xsd:attribute name="them" type="tYesNo"/>
	</xsd:complexType>

<!-- ==================== tSubset ==================== -->
	<xsd:complexType name="tSubset">
		<xsd:sequence>
			<xsd:element name="nrCards" type="tNrCards"/>
			<xsd:element name="ranks" type="tRanks"/>
		</xsd:sequence>
	</xsd:complexType>

<!-- ==================== tDistVal ==================== -->
	<xsd:simpleType name="tDistVal">
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="x"/>
			<xsd:enumeration value="0"/>
			<xsd:enumeration value="1"/>
			<xsd:enumeration value="2"/>
			<xsd:enumeration value="3"/>
			<xsd:enumeration value="4"/>
			<xsd:enumeration value="5"/>
			<xsd:enumeration value="6"/>
			<xsd:enumeration value="7"/>
			<xsd:enumeration value="8"/>
			<xsd:enumeration value="9"/>
			<xsd:enumeration value="10"/>
			<xsd:enumeration value="11"/>
			<xsd:enumeration value="12"/>
			<xsd:enumeration value="13"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tDistSize ==================== -->
	<xsd:complexType name="tDistSize">
		<xsd:attribute name="value" type="tDistVal" default="x"/>
	</xsd:complexType>

<!-- ==================== tDistribution ==================== -->
	<xsd:complexType name="tDistribution">
		<xsd:choice>
			<xsd:sequence>
				<xsd:element name="spades" type="tDistSize"/>
				<xsd:element name="hearts" type="tDistSize"/>
				<xsd:element name="diamonds" type="tDistSize"/>
				<xsd:element name="clubs" type="tDistSize"/>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="suit_1" type="tDistSize"/>
				<xsd:element name="suit_2" type="tDistSize"/>
				<xsd:element name="suit_3" type="tDistSize"/>
				<xsd:element name="suit_4" type="tDistSize"/>
			</xsd:sequence>
		</xsd:choice>
		<xsd:attribute name="owner" type="tOwner" default="me"/>
		<xsd:attribute name="owns" type="tOwns" default="yes"/>
	</xsd:complexType>

<!-- ==================== tSet ==================== -->
	<xsd:complexType name="tSet">
		<xsd:choice>
			<xsd:sequence>
				<xsd:element name="nrCards" type="tNrCards"/>
				<xsd:choice>
					<xsd:sequence>
						<xsd:element name="suit" type="tSuit"/>
						<xsd:element name="hcp" type="tDecimalRange" minOccurs="0"/>
						<xsd:element name="subset" type="tSubset" minOccurs="0"/>
					</xsd:sequence>
					<xsd:sequence>
						<xsd:element name="cards" type="tCards"/>
					</xsd:sequence>
				</xsd:choice>
			</xsd:sequence>
			<xsd:sequence>
				<xsd:element name="cards" type="tCards"/>
			</xsd:sequence>
		</xsd:choice>
		<xsd:attribute name="owner" type="tOwner" default="me"/>
		<xsd:attribute name="owns" type="tOwns" default="yes"/>
	</xsd:complexType>

<!-- ==================== tDecimalRange ==================== -->
	<xsd:complexType name="tDecimalRange">
		<xsd:attribute name="num" type="xsd:decimal"/>
		<xsd:attribute name="min" type="xsd:decimal"/>
		<xsd:attribute name="max" type="xsd:decimal"/>
		<xsd:attribute name="owner" type="tOwner" default="me"/>
		<xsd:attribute name="owns" type="tOwns" default="yes"/>
	</xsd:complexType>

<!-- ==================== tNonNegIntRange ==================== -->
	<xsd:complexType name="tNonNegIntRange">
		<xsd:attribute name="num" type="xsd:nonNegativeInteger"/>
		<xsd:attribute name="min" type="xsd:nonNegativeInteger"/>
		<xsd:attribute name="max" type="xsd:nonNegativeInteger"/>
		<xsd:attribute name="owner" type="tOwner" default="me"/>
		<xsd:attribute name="owns" type="tOwns" default="yes"/>
	</xsd:complexType>

<!-- ==================== tHonorRange ==================== -->
	<xsd:complexType name="tHonorRange">
		<xsd:attribute name="total" type="xsd:nonNegativeInteger"/>
		<xsd:attribute name="num" type="xsd:nonNegativeInteger"/>
		<xsd:attribute name="min" type="xsd:nonNegativeInteger"/>
		<xsd:attribute name="max" type="xsd:nonNegativeInteger"/>
		<xsd:attribute name="owner" type="tOwner" default="me"/>
		<xsd:attribute name="owns" type="tOwns" default="yes"/>
	</xsd:complexType>

<!-- ==================== tStopper ==================== -->
	<xsd:complexType name="tStopper">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">
			  Use exactly 1 suit attribute!
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="val" type="tSuitVal"/>
		<xsd:attribute name="suitRef" type="tSuitRef"/>
		<xsd:attribute name="denomRef" type="tDenomRef"/>
		<xsd:attribute name="bidRef" type="tBidRef"/>
		<xsd:attribute name="owner" type="tOwner" default="me"/>
		<xsd:attribute name="owns" type="tOwns" default="yes"/>
	</xsd:complexType>

<!-- ==================== tControlType ==================== -->
	<xsd:simpleType name="tControlType">
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="1st"/>
			<xsd:enumeration value="2nd"/>
			<xsd:enumeration value="mixed"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tControl ==================== -->
	<xsd:complexType name="tControl">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">
			  Use exactly 1 suit attribute!
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="type" type="tControlType" default="mixed"/>
		<xsd:attribute name="val" type="tSuitVal"/>
		<xsd:attribute name="suitRef" type="tSuitRef"/>
		<xsd:attribute name="denomRef" type="tDenomRef"/>
		<xsd:attribute name="bidRef" type="tBidRef"/>
		<xsd:attribute name="owner" type="tOwner" default="me"/>
		<xsd:attribute name="owns" type="tOwns" default="yes"/>
	</xsd:complexType>

<!-- ==================== tInvoke ==================== -->
	<xsd:complexType name="tInvoke">
		<xsd:attribute name="macro" type="tMacroRef"/>
	</xsd:complexType>

<!-- ==================== tGoto ==================== -->
	<xsd:complexType name="tGoto">
		<xsd:attribute name="chapterRef" type="tChapterRef"/>
		<xsd:attribute name="callRef" type="tCallRef"/>
	</xsd:complexType>

<!-- ==================== tMeaning ==================== -->
	<xsd:complexType name="tMeaning">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">
				hcp: No maximum value because of count system dependency.
				controlCounts: Ace counts for 2, King counts for 1
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="vulnerable" type="tVulnerable" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="hcp" type="tDecimalRange" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="distribution" type="tDistribution" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="set" type="tSet" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="tricks" type="tDecimalRange" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="losers" type="tDecimalRange" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="covercards" type="tDecimalRange" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="aces" type="tNonNegIntRange" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="kings" type="tNonNegIntRange" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="keycards" type="tNonNegIntRange" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="controlcounts" type="tNonNegIntRange" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="stopper" type="tStopper" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="control" type="tControl" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="trump" type="tSuitRel" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="brackets" type="tBrackets" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="invoke" type="tInvoke" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="goto" type="tGoto" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="general" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>

<!-- ==================== tRelation ==================== -->
	<xsd:simpleType name="tRelation">
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="and"/>
			<xsd:enumeration value="or"/>
		</xsd:restriction>
	</xsd:simpleType>

<!-- ==================== tBrackets ==================== -->
	<xsd:complexType name="tBrackets">
		<xsd:sequence>
			<xsd:element name="vulnerable" type="tVulnerable" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="hcp" type="tDecimalRange" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="distribution" type="tDistribution" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="set" type="tSet" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="tricks" type="tDecimalRange" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="losers" type="tDecimalRange" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="coverCards" type="tDecimalRange" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="aces" type="tNonNegIntRange" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="kings" type="tNonNegIntRange" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="keycards" type="tNonNegIntRange" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="controlCounts" type="tNonNegIntRange" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="stopper" type="tStopper" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="control" type="tControl" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="trump" type="tSuitRel" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="brackets" type="tBrackets" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="invoke" type="tInvoke" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="goto" type="tGoto" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="general" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="relation" type="tRelation" default="and"/>
		<xsd:attribute name="positive" type="tYesNo" default="yes"/>
	</xsd:complexType>
</xsd:schema>
