<?xml version="1.0" encoding="UTF-16"?>
<?xml-stylesheet type="text/xsl" href="html.xsl"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:include schemaLocation="inc-types_1-02.xsd"/>
	<xs:annotation><xs:appinfo>ipcr_elayer_definitions_1-03.xsd</xs:appinfo></xs:annotation>
	<xs:annotation>
		<xs:documentation>
			<h1>IPC E-layer Definitions Master File, Schema V.1.03</h1>
	<h2>File name of master files</h2>
	<div>ipcr_elayer_definitions_YYYYMMDD.xml</div>
			<h3>History</h3>
			<dl>
				<dt>2007</dt>
				<dd>IPCDefinitionClass: classes (e.g. A01) may have definition, optional IPC-DEFINITION element added</dd>
				<dt>2008</dt>
				<dd>IPC-DEFINITION: there are definitions (e.g. A61B0018020000) that do not contain title; therefore, DEFINITION-TITLE was made optional</dd>
				<dt>201209</dt>
				<dd>conversion to XSD, adding documentation</dd>
			</dl>
		</xs:documentation>
	</xs:annotation>



	<xs:element name="IPCDefinitionsSet">
		<xs:annotation>
			<xs:documentation>
				<div>wrapper of language versions</div>
				<div>A definition file may potentially contain more versions and language versions.</div>
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="IPCDefinitions" type="IPCDefinitions" minOccurs="0" maxOccurs="unbounded"></xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="IPCDefinitions">
		<xs:annotation>
			<xs:documentation>
				<div>definitions in one language, for a certain version and language</div>
			</xs:documentation>
		</xs:annotation>

		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="IPCDefinitionsSection" type="IPCDefinitionsSection" maxOccurs="unbounded"></xs:element>
			<xs:element name="IPC-DEFINITION" type="IPC-DEFINITION"></xs:element>
		</xs:choice>
		<xs:attribute name="edition" type="edition" use="required">
			<xs:annotation>
				<xs:documentation>
					<div>edition of IPC to which these definitions belong</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="lang" type="lang" use="required">
			<xs:annotation><xs:documentation><div>Language of the definitions</div>
			</xs:documentation></xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="IPCDefinitionsSection">
		<xs:annotation>
			<xs:documentation>
				<div>hierarchical element for storing definitions related to a section</div>
				<div>Sections do not have definitions</div>
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:element name="IPCDefinitionsClass" type="IPCDefinitionsClass" maxOccurs="unbounded"></xs:element>
		</xs:sequence>
		<xs:attribute name="symbol" type="symbol" use="required"></xs:attribute>
	</xs:complexType>

	<xs:complexType name="IPCDefinitionsClass">
		<xs:annotation>
			<xs:documentation>
				<div>hierarchical element for storing definitions related to a class</div>
				<div>Classses may have definitions.</div>
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:element name="IPC-DEFINITION" type="IPC-DEFINITION" minOccurs="0"></xs:element>
			<xs:element name="IPCDefinitionsSubclass" type="IPCDefinitionsSubclass" minOccurs="0" maxOccurs="unbounded"></xs:element>
		</xs:sequence>
		<xs:attribute name="symbol" type="symbol" use="required"></xs:attribute>
	</xs:complexType>

	<xs:complexType name="IPCDefinitionsSubclass">
		<xs:annotation>
			<xs:documentation>
				<div>hierarchical element for storing definitions related to a subclass.</div>
				<div>A IPCDefinitionsSubclass usually has definitions, and can contain definitions for (some of) its maingroups, stored under the IPCDefinitionsMaingroup elements.</div>
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:element name="IPC-DEFINITION" type="IPC-DEFINITION" minOccurs="0"></xs:element>
			<xs:element name="IPCDefinitionsMaingroup" type="IPCDefinitionsMaingroup" minOccurs="0" maxOccurs="unbounded"></xs:element>
		</xs:sequence>
		<xs:attribute name="symbol" type="symbol" use="required"></xs:attribute>
	</xs:complexType>

	<xs:complexType name="IPCDefinitionsMaingroup">
		<xs:annotation>
			<xs:documentation>
				<div>hierarchical element for storing definitions related to a maingroup.</div>
				<div>While it is not mandatory to have definition for the main group, embedded subgroups may have their own definition.</div>
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:element name="IPC-DEFINITION" type="IPC-DEFINITION" minOccurs="0"></xs:element>
			<xs:element name="IPCDefinitionsGroup" type="IPCDefinitionsGroup" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>flat list of subgroups</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="symbol" type="symbol" use="required"></xs:attribute>
	</xs:complexType>

	<xs:complexType name="IPCDefinitionsGroup">
		<xs:annotation>
			<xs:documentation>
				<div>wrapper of the definition of the group</div>
				<div>A subgroup must have exactly one definition.</div>
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:element name="IPC-DEFINITION" type="IPC-DEFINITION" minOccurs="1" maxOccurs="1">
			</xs:element>
		</xs:sequence>
		<xs:attribute name="symbol" type="symbol" use="required"></xs:attribute>
	</xs:complexType>

	<xs:complexType name="IPC-DEFINITION">
		<xs:annotation>
			<xs:documentation>
				<div>an independent IPC definition</div>
				<!--
				<div>TEXT MACRO</div>
				<dl>
					<dt>
						<b>Structure:</b> 
					</dt>
					<dd>
						<b>PCDATA</b> -    any text</dd>
					<dd>
						<b>SUP</b> -    superscript</dd>
					<dd>
						<b>SUB</b> -    subscript</dd>
					<dd>
						<b>U</b> -       underline</dd>
					<dd>
						<b>B</b> -    bold</dd>
					<dd>
						<b>IMG</b> -    image</dd>
					<dd>
						<b>SREF</b> -    single reference to IPC</dd>
					<dd>
						<b>MREF</b> -    multiple reference to IPC</dd>
					<dd>
						<b>LREF</b> -    local reference to a defined IPC</dd>
					<dd>
						<b>GREF</b> -    glossary reference</dd>
					<dd>
						<b>others</b> -    special characters</dd>
				</dl>
				-->
				<h3>History</h3>
				<dl>
					<dt>20070807</dt>
					<dd>DEFINITION-TITLE was made optional (some definitions have no title)</dd>
				</dl>
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:element name="DEFINITION-TITLE" type="DEFINITION-TITLE" minOccurs="0"></xs:element>
			<xs:element name="DEFINITION-STATEMENT" type="DEFINITION-STATEMENT" minOccurs="0"></xs:element>
			<xs:element name="LARGESUBJECTS" type="LARGESUBJECTS" minOccurs="0"></xs:element>
			<xs:element name="LIMITINGREFERENCES" type="LIMITINGREFERENCES" minOccurs="0"></xs:element>
			<xs:element name="INFORMATIVEREFERENCES" type="INFORMATIVEREFERENCES" minOccurs="0"></xs:element>
			<xs:element name="SPECIALRULES" type="SPECIALRULES" minOccurs="0"></xs:element>
			<xs:element name="GLOSSARYOFTERMS" type="GLOSSARYOFTERMS" minOccurs="0"></xs:element>
			<xs:element name="SYNONYMSANDKEYWORDS" type="SYNONYMSANDKEYWORDS" minOccurs="0"></xs:element>
		</xs:sequence>
		<xs:attribute name="IPC" type="emptyOrSymbol" use="required">
			<xs:annotation>
				<xs:documentation>empty symbol denotes IPC-wide, global definitions (terms)</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="DEFINITION-TITLE" mixed="true">
		<xs:annotation>
			<xs:documentation>
				<div>definition title</div>
				<div>Title is optional and irrelevant.</div>
			</xs:documentation>
		</xs:annotation>
		<!--

				<div>IPC-DEFINITION    definition of a single subclass, maingroup or group</div>
				<dl>
					<dt>
						<b>Structure:</b> 
					</dt>
					<dd>
						<b>DEFINITION-TITLE</b> -    the title</dd>
					<dd>
						<b>DEFINITION-STATEMENT?</b> -    main text of the definition</dd>
					<dd>
						<b>LARGESUBJECT?</b> -        relationship between large subject matter areas</dd>
					<dd>
						<b>LIMITINGREFERENCES?</b> -    Limiting references</dd>
					<dd>
						<b>INFORMATIVEREFERENCES?</b> -    Informative references</dd>
					<dd>
						<b>REFERENCES?</b> -        references in generated definitions</dd>
					<dd>
						<b>GENERALREFERENCES?</b> -    in general references in generated definitions</dd>
					<dd>
						<b>SPECIALRULES?</b> -        Special rules of classification</dd>
					<dd>
						<b>GLOSSARYOFTERMS?</b> -    Glossary</dd>
					<dd>
						<b>SYNONYMSANDKEYWORDS?</b> -    Synonyms and Keywords</dd>
				</dl>
				<dl>
					<dt>
						<b>Attributes:</b> 
					</dt>
					<dd>IPC            the IPC symbol of the entry that is to be defined</dd>
				</dl>
				-->

		<xs:complexContent mixed="true">
			<xs:extension base="definitionParagraph"/>
		</xs:complexContent>
	</xs:complexType>


	<xs:complexType name="DEFINITION-STATEMENT">
		<xs:annotation>
			<xs:documentation>
				<div>definition statement</div>
				<div>Contains:</div>
				<ul>
					<li>either a sequence of definition cases, finished by optional explanations, or explanations only</li>
					<li>and an optional table(s) of local references in complex subclasses</li>
				</ul>
			</xs:documentation>
		</xs:annotation>

		<xs:choice>
			<xs:sequence>
				<xs:element name="DEFINITION-CASE" type="DEFINITION-CASE" minOccurs="1" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>
							<div>the definition cases, optional</div>
						</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="MAIN-PARAGRAPH" type="MAIN-PARAGRAPH" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>
							<div>explanations</div>
							<div>This element appears twice in DEFINITION-STATEMENT when no DEFINITION-CASE precedes the explanation.</div>
						</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="INDEXOFGROUPS" type="INDEXOFGROUPS" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>
							<div>optional table(s) of local references</div>
						</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
			<xs:sequence>
				<xs:element name="MAIN-PARAGRAPH" type="MAIN-PARAGRAPH" minOccurs="1" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>
							<div>explanations</div>
						</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="INDEXOFGROUPS" type="INDEXOFGROUPS" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>
							<div>optional table(s) of local references</div>
						</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="LARGESUBJECTS">
		<xs:annotation>
			<xs:documentation>
				<div>relationship between large subject matter areas</div>
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:choice maxOccurs="unbounded">
				<xs:element name="SUBHEADING" type="SUBHEADING">
					<xs:annotation>
						<xs:documentation>headings for subsequent explanations</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="MAIN-PARAGRAPH" type="MAIN-PARAGRAPH">
					<xs:annotation>
						<xs:documentation>explanation, at least one</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:choice>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="LIMITINGREFERENCES">

		<xs:annotation>
			<xs:documentation>
				<div>tables containing limiting references</div>
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="referenceTables"/>
		</xs:complexContent>
	</xs:complexType>


	<xs:complexType name="INFORMATIVEREFERENCES">
		<xs:annotation>
			<xs:documentation>
				<div>tables containing information references</div>
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="referenceTables"/>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="referenceTables">
		<xs:annotation>
			<xs:documentation>
				<div>one or more reference tables, a reference table may have a preceding heading</div>
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:sequence>
				<xs:element name="REFERENCETABLE" type="REFERENCETABLE" minOccurs="0">
						<xs:annotation><xs:documentation><div>references that <b>do not belong</b> to a subheading</div></xs:documentation></xs:annotation>
				</xs:element>
				<xs:sequence minOccurs="0" maxOccurs="unbounded">
					<xs:element name="SUBHEADING" type="SUBHEADING">
						<xs:annotation>
							<xs:documentation>headings for reference tables</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="REFERENCETABLE" type="REFERENCETABLE" minOccurs="0">
						<xs:annotation><xs:documentation><div>references that <b>belong</b> to a subheading</div>
						</xs:documentation></xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:sequence>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="SPECIALRULES">
		<xs:annotation>
			<xs:documentation>special rules of classification in form of explanations</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:element name="MAIN-PARAGRAPH" type="MAIN-PARAGRAPH" maxOccurs="unbounded"></xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="GLOSSARYOFTERMS">
		<xs:annotation>
			<xs:documentation>glossary: terms often used in IPC within this class, subclass, maingroup or group</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:element name="TERMROW" type="TERMROW" maxOccurs="unbounded"></xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="SYNONYMSANDKEYWORDS">
		<xs:annotation>
			<xs:documentation>
				<div>synonyms and keywords often used in patent documents</div>
			</xs:documentation>
		</xs:annotation>

		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="TERMTEXT" type="TERMTEXT" maxOccurs="unbounded"></xs:element>
			<xs:element name="TERMROW" type="TERMROW" maxOccurs="unbounded"></xs:element>
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="DEFINITION-CASE">
		<xs:annotation>
			<xs:documentation>
				<div>Definition of a subject matter area of the actual class, subclass, maingroup or group</div>
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:element name="PARAGRAPH-TEXT" type="PARAGRAPH-TEXT"></xs:element>
			<xs:element name="SUBPARAGRAPH" type="SUBPARAGRAPH" minOccurs="0" maxOccurs="unbounded"></xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="MAIN-PARAGRAPH">
		<xs:annotation>
			<xs:documentation>
				<div>A main paragraph (explanation)</div>
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:element name="PARAGRAPH-TEXT" type="PARAGRAPH-TEXT"></xs:element>
			<xs:element name="SUBPARAGRAPH" type="SUBPARAGRAPH" minOccurs="0" maxOccurs="unbounded"></xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="INDEXOFGROUPS">
		<xs:annotation>
			<xs:documentation>
				<div>Index of groups with a heading.</div>
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:element name="SUBHEADING" type="SUBHEADING"></xs:element>
			<xs:element name="REFERENCETABLE" type="REFERENCETABLE"></xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="REFERENCETABLE">
		<xs:annotation>
			<xs:documentation>table of references</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:element name="REFERENCEROW" type="REFERENCEROW" maxOccurs="unbounded"></xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="SUBHEADING" mixed="true">
		<xs:annotation>
			<xs:documentation>
				<div>heading, for tables or explanations</div>
				<div>Headings in definitions are not embedding its content.</div>
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent mixed="true">
			<xs:extension base="definitionParagraph"/>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="REFERENCEROW">
		<xs:annotation>
			<xs:documentation>
				<div>description (explanation or bulleted paragraph) with associated references.</div>
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:choice>
				<xs:element name="MAIN-PARAGRAPH" type="MAIN-PARAGRAPH"></xs:element>
				<xs:element name="SUBPARAGRAPH" type="SUBPARAGRAPH"></xs:element>
			</xs:choice>
			<xs:element name="IPCREFS" type="IPCREFS"></xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="IPCREFS" mixed="true">
		<xs:annotation>
			<xs:documentation>
				<div>mixture of references to IPC symbols and separators, optionally local references</div>
			</xs:documentation>
		</xs:annotation>
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="SREF" type="SREF"></xs:element>
			<xs:element name="MREF" type="MREF"></xs:element>
			<xs:element name="LREF" type="LREF"></xs:element>
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="TERMROW">
		<xs:annotation>
			<xs:documentation>
				<div>definition of a term with associated description</div>
				<!--
				<dl>
					<dt>IPCREFS</dt>
					<dd>
						<b>(#PCDATA</b> -    any text e.g. and or ,.;:</dd>
					<dd>
						<b>SREF |</b> -       sequence of (single reference or</dd>
					<dd>
						<b>MREF |</b> -         interval reference or</dd>
					<dd>
						<b>LREF)*</b> -       local reference)</dd>
				</dl>
				-->
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:element name="TERM" type="TERM" maxOccurs="unbounded"></xs:element>
			<xs:element name="MAIN-PARAGRAPH" type="MAIN-PARAGRAPH" maxOccurs="unbounded"></xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="PARAGRAPH-TEXT" mixed="true">
		<xs:annotation>
			<xs:documentation>
				<div>non-bulleted paragraph text</div>
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent mixed="true">
			<xs:extension base="definitionParagraph"/>
		</xs:complexContent>
		<!--		
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element name="BR" type="BR"></xs:element>
				<xs:element name="SUP" type="SUP"></xs:element>
				<xs:element name="SUB" type="SUB"></xs:element>
				<xs:element name="U" type="U"></xs:element>
				<xs:element name="UND" type="UND"></xs:element>
				<xs:element name="B" type="B"></xs:element>
				<xs:element name="IMG" type="IMG"></xs:element>
				<xs:element name="A" type="A"></xs:element>
				<xs:element name="SREF" type="SREF"></xs:element>
				<xs:element name="MREF" type="MREF"></xs:element>
				<xs:element name="LREF" type="LREF"></xs:element>
				<xs:element name="GREF" type="GREF"></xs:element>
				<xs:element name="TAB" type="TAB"></xs:element>
				<xs:element name="MDASH" type="MDASH"></xs:element>
				<xs:element name="GE" type="GE"></xs:element>
				<xs:element name="LE" type="LE"></xs:element>
				<xs:element name="LH3BOND" type="LH3BOND"></xs:element>
				<xs:element name="LH2BOND" type="LH2BOND"></xs:element>
				<xs:element name="RH3BOND" type="RH3BOND"></xs:element>
				<xs:element name="RH2BOND" type="RH2BOND"></xs:element>
				<xs:element name="DBOND" type="DBOND"></xs:element>
			</xs:choice>
-->
	</xs:complexType>

	<xs:complexType name="SUBPARAGRAPH" mixed="true">
		<xs:annotation>
			<xs:documentation>
				<div>(bulleted) subparagraph</div>
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent mixed="true">
			<xs:extension base="definitionParagraph"/>
		</xs:complexContent>
		<!--
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element name="BR" type="BR"></xs:element>
				<xs:element name="SUP" type="SUP"></xs:element>
				<xs:element name="SUB" type="SUB"></xs:element>
				<xs:element name="U" type="U"></xs:element>
				<xs:element name="UND" type="UND"></xs:element>
				<xs:element name="B" type="B"></xs:element>
				<xs:element name="IMG" type="IMG"></xs:element>
				<xs:element name="A" type="A"></xs:element>
				<xs:element name="SREF" type="SREF"></xs:element>
				<xs:element name="MREF" type="MREF"></xs:element>
				<xs:element name="LREF" type="LREF"></xs:element>
				<xs:element name="GREF" type="GREF"></xs:element>
				<xs:element name="TAB" type="TAB"></xs:element>
				<xs:element name="MDASH" type="MDASH"></xs:element>
				<xs:element name="GE" type="GE"></xs:element>
				<xs:element name="LE" type="LE"></xs:element>
				<xs:element name="LH3BOND" type="LH3BOND"></xs:element>
				<xs:element name="LH2BOND" type="LH2BOND"></xs:element>
				<xs:element name="RH3BOND" type="RH3BOND"></xs:element>
				<xs:element name="RH2BOND" type="RH2BOND"></xs:element>
				<xs:element name="DBOND" type="DBOND"></xs:element>
			</xs:choice>
			-->
	</xs:complexType>

	<xs:complexType name="TERMTEXT" mixed="true">
		<xs:annotation>
			<xs:documentation>
				<div>definition of the term</div>
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent mixed="true">
			<xs:extension base="definitionParagraph"/>
		</xs:complexContent>
		<!--
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element name="BR" type="BR"></xs:element>
				<xs:element name="SUP" type="SUP"></xs:element>
				<xs:element name="SUB" type="SUB"></xs:element>
				<xs:element name="U" type="U"></xs:element>
				<xs:element name="UND" type="UND"></xs:element>
				<xs:element name="B" type="B"></xs:element>
				<xs:element name="IMG" type="IMG"></xs:element>
				<xs:element name="A" type="A"></xs:element>
				<xs:element name="SREF" type="SREF"></xs:element>
				<xs:element name="MREF" type="MREF"></xs:element>
				<xs:element name="LREF" type="LREF"></xs:element>
				<xs:element name="GREF" type="GREF"></xs:element>
				<xs:element name="TAB" type="TAB"></xs:element>
				<xs:element name="MDASH" type="MDASH"></xs:element>
				<xs:element name="GE" type="GE"></xs:element>
				<xs:element name="LE" type="LE"></xs:element>
				<xs:element name="LH3BOND" type="LH3BOND"></xs:element>
				<xs:element name="LH2BOND" type="LH2BOND"></xs:element>
				<xs:element name="RH3BOND" type="RH3BOND"></xs:element>
				<xs:element name="RH2BOND" type="RH2BOND"></xs:element>
				<xs:element name="DBOND" type="DBOND"></xs:element>
			</xs:choice>
			-->
	</xs:complexType>

	<xs:complexType name="SREF">
		<xs:annotation>
			<xs:documentation>
				<div>reference to a single IPC entry</div>
			</xs:documentation>
		</xs:annotation>

		<xs:attribute name="TARGET" type="symbol" use="required"></xs:attribute>
		<xs:attribute name="LABEL" type="definitionLabel">
			<xs:annotation>
				<xs:documentation>
					<div>visual content (text) of the reference</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="LREF">
		<xs:annotation>
			<xs:documentation>
				<div>reference to locally defined IPC entry</div>
			</xs:documentation>
		</xs:annotation>

		<xs:attribute name="TARGET" type="symbol" use="required"></xs:attribute>
		<xs:attribute name="LABEL" type="definitionLabel">
			<xs:annotation>
				<xs:documentation>
					<div>visual content (text) of the reference</div>
					<div>Obsolete attribute, used in files before 20090101</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="MREF">
		<xs:annotation>
			<xs:documentation>
				<div>reference to an interval of references IPC entry</div>
			</xs:documentation>
		</xs:annotation>

		<xs:attribute name="START" type="symbol" use="required">
			<xs:annotation>
				<xs:documentation>beginning of interval</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="LABELS" type="definitionLabel">
			<xs:annotation>
				<xs:documentation>
					<div>text of the beginning of the interval</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="END" type="symbol" use="required">
			<xs:annotation>
				<xs:documentation>end of interval</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="LABELE" type="definitionLabel">
			<xs:annotation>
				<xs:documentation>
					<div>text of the end of the reference interval</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="GREF" mixed="true">
		<xs:attribute name="REFID" type="glossaryReference" use="required">
		</xs:attribute>
	</xs:complexType>

	<xs:simpleType name="glossaryReference">
		<xs:annotation>
			<xs:documentation>
				<div>reference to a glossary entry</div>
				<div>Cases:</div>
				<ul>
					<li>#.*$: reference to a global term</li>
					<li>
						<i>ipcSymbol</i>#.*$: reference to a term definied in the defintion given in the <i>ipcSymbol</i></li>
				</ul>
				<div>References should point only to those terms that are defined above the scope of the actual IPC-DEFINITION.</div>
				<div>Not all glossary references may be marked, since the markup depends on order of creation and modification of definitions.</div>
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="#[^a-z ]+"/>
			<xs:pattern value="[A-H]#[^a-z ]+"/>
			<xs:pattern value="[A-H][0-9][0-9]#[^a-z ]+"/>
			<xs:pattern value="[A-H][0-9][0-9][A-Z]#[^a-z ]+"/>
			<xs:pattern value="[A-H][0-9][0-9][A-Z][0-9]{10}#[^a-z ]+"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="TERM" mixed="true">
		<xs:annotation>
			<xs:documentation>definition of a term</xs:documentation>
		</xs:annotation>
		<xs:attribute name="ID" use="required" type="capitals">
			<xs:annotation>
				<xs:documentation>capitalized version of the term</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:simpleType name="capitals">
		<xs:annotation>
			<xs:documentation>capital letters or separators</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="[^a-z ]+"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="UND" mixed="true">
		<xs:annotation>
			<xs:documentation>
				<div>underlined text</div>
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent mixed="true">
			<xs:extension base="U"/>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="U" mixed="true">
		<xs:annotation>
			<xs:documentation>
				<div>underlined text</div>
				<div>may embed references and text formatted as superscript, subscript or bold</div>
			</xs:documentation>
		</xs:annotation>

		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="SREF" type="SREF"></xs:element>
			<xs:element name="MREF" type="MREF"></xs:element>
			<xs:element name="GREF" type="GREF"></xs:element>
			<xs:element name="B" type="B"></xs:element>
			<xs:element name="SUB" type="SUB"></xs:element>
			<xs:element name="SUP" type="SUP"></xs:element>
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="B" mixed="true">
		<xs:annotation>
			<xs:documentation>
				<div>bold text</div>
				<div>may embed references and text formatted as superscript, subscript or underline</div>
			</xs:documentation>
		</xs:annotation>
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="SREF" type="SREF"></xs:element>
			<xs:element name="MREF" type="MREF"></xs:element>
			<xs:element name="GREF" type="GREF"></xs:element>
			<xs:element name="U" type="U"></xs:element>
			<xs:element name="UND" type="UND"></xs:element>
			<xs:element name="SUB" type="SUB"></xs:element>
			<xs:element name="SUP" type="SUP"></xs:element>
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="SUB" mixed="true">
		<xs:annotation>
			<xs:documentation>
				<div>text in subscript</div>
			</xs:documentation>
		</xs:annotation>
	</xs:complexType>
	<xs:complexType name="SUP" mixed="true">
		<xs:annotation>
			<xs:documentation>
				<div>text in superscript</div>
			</xs:documentation>
		</xs:annotation>
	</xs:complexType>
	<xs:complexType name="BR">
		<xs:annotation>
			<xs:documentation>
				<div>soft line break</div>
			</xs:documentation>
		</xs:annotation>
	</xs:complexType>

	<xs:complexType name="GE">
		<xs:annotation>
			<xs:documentation>
				<div>greater-than or equal to</div>
				<div>Equivalent to the ≥ character.</div>
			</xs:documentation>
		</xs:annotation>
	</xs:complexType>
	<xs:complexType name="LE">
		<xs:annotation>
			<xs:documentation>
				<div>less-than or equal to</div>
				<div>Equivalent to the ≤ character.</div>
			</xs:documentation>
		</xs:annotation>
	</xs:complexType>

	<xs:complexType name="LH3BOND">
		<xs:annotation>
			<xs:documentation>
		<div>left triple hydrogen bond in inline chemical formulae(only image representation)</div>
		</xs:documentation></xs:annotation>
	</xs:complexType>

	<xs:complexType name="LH2BOND">
		<xs:annotation>
			<xs:documentation>
				<div>left double hydrogen bonds</div>
				<div>Equivalent to the 〉 character.</div>
			</xs:documentation>
		</xs:annotation>
	</xs:complexType>

	<xs:complexType name="RH3BOND">
		<xs:annotation>
			<xs:documentation>
				<div>right triple hydrogen bond in inline chemical formulae(only image representation)</div>
			</xs:documentation>
		</xs:annotation>
	</xs:complexType>

	<xs:complexType name="RH2BOND">
		<xs:annotation>
			<xs:documentation>
				<div>right double hydrogen bond in inline chemical formulae.</div>
				<div>Equivalent to  the 〈 character.</div>
			</xs:documentation>
		</xs:annotation>
	</xs:complexType>

	<xs:complexType name="DBOND">
		<xs:annotation>
			<xs:documentation>
				<div>special character: equal sign (=) or double hydrogen bond in chemical formulae (═)</div>
				<div>Equivalent to  the = character where equal sign is expected or ═ character in chemical formulae.</div>
			</xs:documentation>
		</xs:annotation>
	</xs:complexType>
	<xs:complexType name="SP">
		<xs:annotation>
			<xs:documentation>
				<div>non-breaking space</div>
				<div>Equivalent to the &amp;#160; character, that represents non-breaking space</div>
			</xs:documentation>
		</xs:annotation>
	</xs:complexType>
	<xs:complexType name="TAB">
		<xs:annotation>
			<xs:documentation>
				<div>tabulation</div>
				<div>Obsolete character.</div>
			</xs:documentation>
		</xs:annotation>
	</xs:complexType>

	<xs:complexType name="MDASH">
		<xs:annotation>
			<xs:documentation>
				<div>special character: long dash (─), used sometimes as single hydrogen bond in chemical formulae.</div>
			</xs:documentation>
		</xs:annotation>
	</xs:complexType>

	<xs:complexType name="IMG">
		<xs:annotation>
			<xs:documentation>
				<div>Illustration image of the definition</div>
			</xs:documentation>
		</xs:annotation>

		<xs:attribute name="SRC" type="imgSource" use="required">
		</xs:attribute>
	</xs:complexType>

	<xs:simpleType name="imgSource">
		<xs:annotation>
			<xs:documentation>
				<div>reference to the image</div>
				<div>The image reference contains the symbol of the referring definition and a sequence number (separated by an underscore), e.g. A01B_1</div>
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="[A-H]_[0-9]+"/>
			<xs:pattern value="[A-H][0-9][0-9]_[0-9]+"/>
			<xs:pattern value="[A-H][0-9][0-9][A-Z]_[0-9]+"/>
			<xs:pattern value="[A-H][0-9][0-9][A-Z][0-9]{10}_[0-9]+"/>
		</xs:restriction>
	</xs:simpleType>


	<xs:complexType name="A" mixed="true">
		<xs:annotation><xs:documentation>reference to an external URL</xs:documentation></xs:annotation>
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="SP" type="SP"></xs:element>
		</xs:choice>
		<xs:attribute name="href" type="xs:anyURI" use="required"></xs:attribute>
	</xs:complexType>

	<xs:complexType name="definitionParagraph" mixed="true">
		<xs:annotation>
			<xs:documentation>
				<div>formatted text paragraph in the definitions</div>
			</xs:documentation>
		</xs:annotation>
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="BR" type="BR"></xs:element>
			<xs:element name="SUP" type="SUP"></xs:element>
			<xs:element name="SUB" type="SUB"></xs:element>
			<xs:element name="U" type="U"></xs:element>
			<xs:element name="UND" type="UND"></xs:element>
			<xs:element name="B" type="B"></xs:element>
			<xs:element name="IMG" type="IMG"></xs:element>
			<xs:element name="A" type="A"></xs:element>
			<xs:element name="SREF" type="SREF"></xs:element>
			<xs:element name="MREF" type="MREF"></xs:element>
			<xs:element name="LREF" type="LREF"></xs:element>
			<xs:element name="GREF" type="GREF"></xs:element>
			<xs:element name="TAB" type="TAB"></xs:element>
			<xs:element name="MDASH" type="MDASH"></xs:element>
			<xs:element name="GE" type="GE"></xs:element>
			<xs:element name="LE" type="LE"></xs:element>
			<xs:element name="LH3BOND" type="LH3BOND"></xs:element>
			<xs:element name="LH2BOND" type="LH2BOND"></xs:element>
			<xs:element name="RH3BOND" type="RH3BOND"></xs:element>
			<xs:element name="RH2BOND" type="RH2BOND"></xs:element>
			<xs:element name="DBOND" type="DBOND"></xs:element>
			<xs:element name="gt" type="gt"/>
			<xs:element name="lt" type="lt"/>
		</xs:choice>
	</xs:complexType>


	<xs:simpleType name="definitionLabel">
		<xs:annotation><xs:documentation><div>visual representation of the IPC symbol, can be a short presentation, e.g. 12/00</div>
		<div>Obsolete.</div>
		</xs:documentation></xs:annotation>
		<xs:restriction base="xs:string">
		</xs:restriction>
	</xs:simpleType>
</xs:schema>