<?xml version="1.0" encoding="UTF-16"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:include schemaLocation="inc-types_1-02.xsd"/>
	<xs:include schemaLocation="inc-scheme_1-02.xsd"/>
	<xs:include schemaLocation="inc-annexes_1-02.xsd"/>
	<xs:annotation><xs:appinfo>ipcr_compilation_1-03.xsd</xs:appinfo></xs:annotation>
	<xs:annotation>
		<xs:documentation>
			<h1>IPC Compilation Master File, Schema V.1.03</h1>
	<h2>File name of master files</h2>
	<div>ipcr_compilation_YYYYMMDD.xml</div>
		</xs:documentation>
	</xs:annotation>
	<xs:element name="ipcEntriesList">
		<xs:annotation>
			<xs:documentation>
				<div>A compilation file may contain compilations of several IPC editions, levels, languages and displayModes, in separate ipcEntries elements.</div>
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="ipcEntries" type="compilationIpcEntries" minOccurs="0" maxOccurs="unbounded"></xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="compilationIpcEntries">
		<xs:annotation>
			<xs:documentation>
				<div>a flat list of new, modified or deleted ipcEntry-s</div>
				<div>ipcEntry elements are not embedded,
i.e. section/class/subclass/maingroup/dot 1 etc. hierarchy is not reflected by the
inclusion of ipcEntry elements
				</div>
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:element name="ipcEntry" type="compilationIpcEntry" minOccurs="0" maxOccurs="unbounded">
<xs:annotation><xs:documentation><div>modified, new or deleted IPC entries</div>
						<div>The ipcEntry elements within the ipcEntries list, are:</div>
						<ul>
							<li>in case ipcLevel='a'<br/>
modified <u>core or advanced</u> elements between the previous version and the version given in edition attribute<br/>
as they are published in the advanced level</li>
							<li>in case ipcLevel='c'<br/>
modified <u>core elements</u> between the previous version and the version given in edition attribute<br/>
as they are published in the core level</li>
						</ul>
							</xs:documentation></xs:annotation>
					</xs:element>
		</xs:sequence>
		<xs:attribute name="ipcSymbol" fixed="all" use="optional" type="asymbol">
			<xs:annotation>
				<xs:documentation>
					<div>potentially the compilation file may contain a subset only</div>
					<div>Obsolete attribute.</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="displayMode" fixed="compiled" use="optional" type="xs:string">
			<!--
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="compiled"></xs:enumeration>
				</xs:restriction>
			</xs:simpleType>
		-->
			<xs:annotation>
				<xs:documentation>
					<div>compilation files are always presented in 'compiled' mode</div>
					<div>The compilation file may contain 'compressed' version, but this feature was never used.</div>
					<div>Compressed version is significantly shorter, since does not contain unchanged parts of notes.</div>
					<div>Obsolete attribute.</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="edition" type="edition">
		<xs:annotation><xs:documentation><div>the target version, to which the former version is compared<br/>
former version is determined by the ipcLevel attribute</div></xs:documentation></xs:annotation>
		</xs:attribute>
		<xs:attribute name="ipcLevel" type="ipcLevel">
		<xs:annotation><xs:documentation><div>
level of IPC for which the compilation was made</div>
						<div>The previous version, to which comparison is made, is:</div>
						<ul>
							<li>in case ipcLevel='a':<br/>
the last advanced level version published before the version given in edition attribute</li>
							<li>in case ipcLevel='c'<br/>
the last core level version published before the edition given in edition attribute</li>
						</ul>
				<div>In prereform versions and after the simplification, the level attribute is irrelevant.</div>
						</xs:documentation></xs:annotation>
		</xs:attribute>
		<xs:attribute name="lang" type="lang">
		<xs:annotation><xs:documentation>
		<div>language of the embedded entries</div>
		</xs:documentation></xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="compilationIpcEntry">
		<xs:annotation>
			<xs:documentation>
				<div>representation of the modified, new or deleted IPC entry, either structured and non-structured entry</div>
				<div>For the purpose of comparison, the <u>text</u> of IPC entries is 'flattened'.</div>
				<div>ipcEntry in compilation files may contain:</div>
				<ol type="1">
					<li>various textual elements, i.e. content reflecting the changes:
					<ul type="square">
						<li>
							<b>textBody:</b>for new and deleted entries</li>
						<li>
							<b>title:</b>for modified entries</li>
						<li>
							<b>flatNotes:</b>modified notes, with non-embedded note structures</li>
					</ul>
					</li>
					<li>amendment element(s), that documents the revision-specific details,<br/>
i.e. what changes were adopted since the start of the revision period.</li>
				</ol>
				<div>IPC entries in compilation files are not embedded into their hierarchy as reflected in the scheme.</div>
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:choice>
				<xs:element name="title" type="compilationTitle"></xs:element>
				<xs:element name="textBody" type="schemeTextBody"></xs:element>
				<xs:element name="flatNotes" type="flatNotes"></xs:element>
			</xs:choice>
			<xs:element name="amendment" type="amendment" minOccurs="0" maxOccurs="unbounded"></xs:element>
		</xs:sequence>
		<xs:attributeGroup ref="compilationEntryAttributes"/>
	</xs:complexType>

	<xs:complexType name="flatNotes">
		<xs:annotation>
			<xs:documentation>
				<div>non-embedded (flat) version of a note or index ipcEntry</div>
				<div>In compiled mode, the paragraphs of the original or new note<br/>
				are all present in the compilation file.</div>
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:element name="flatNote" type="flatNote" minOccurs="0" maxOccurs="unbounded"></xs:element>
		</xs:sequence>
		<xs:attribute name="mode" type="compilationNoteMode">
		</xs:attribute>
		<xs:attribute name="type" type="compilationNoteOrIndexType">
		</xs:attribute>
	</xs:complexType>
	<xs:simpleType name="compilationNoteOrIndexType">
		<xs:annotation>
			<xs:documentation>
				<div>compilation note type</div>
				<div>distinguish different presentation for notes and indexes</div>
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="index">
				<xs:annotation>
					<xs:documentation>
						<div>index comparison</div>
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="note">
				<xs:annotation>
					<xs:documentation>
						<div>default, text comparison</div>
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="compilationNoteMode">
		<xs:annotation>
			<xs:documentation>
				<div>presentation mode</div>
				<div>only full mode is used</div>
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="full">
				<xs:annotation>
					<xs:documentation>
						<div>full text of the entry is presented</div>
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="compilationTitle" mixed="true">
		<xs:annotation>
			<xs:documentation>
				<div>text of structured elements with modification markup</div>
				<div>the title can be flattened, especially for notes, and the text contains necessary markup to embed new and deleted places as well as locating
				the changes</div>
				<!--
				<h3>Structure</h3>
				<div>either list of titlePart elements (those separated by ';' in scheme presentation)<br/>
or text (including special characters) with modification markup</div>
				<ul>
					<li>titlepart: non-modified or internally modified parts</li>
					<li>modification markup<br/>
						<ul>
							<li>textnew</li>
							<li>textdel</li>
							<li>firstWord</li>
							<li>first3Word</li>
							<li>lastWord</li>
							<li>last3Word</li>
							<li>bar</li>
						</ul>
					</li>
					<li>character formatting</li>
					<li>special characters</li>
				</ul>
				-->
			</xs:documentation>
		</xs:annotation>

		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:group ref="compilationCharacterStyles"/>
			<xs:element name="titlePart" type="compilationTitlePart"></xs:element>
		</xs:choice>
	</xs:complexType>


	<xs:complexType name="compilationTitlePart">
		<xs:annotation>
			<xs:documentation>
				<div>text and associated references, with embedded comparison markup</div>
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="text" type="compilationMarkedText"></xs:element>
			<xs:element name="entryReference" type="compilationMarkedText" minOccurs="0" maxOccurs="unbounded"></xs:element>
		</xs:sequence>
	</xs:complexType>


	<xs:complexType name="flatNote">
		<xs:annotation>
			<xs:documentation>
				<div>compared text of note and index paragraphs</div>
				<div>contains text and references</div>
				<ul>
				<li>for index paragraphs: the text precedes the references</li>
				<li>for table-like note paragraphs: the references precedes the text</li>	
				<li>for other notes: no references list</li>
				</ul>
				<div><b>Due to various comparison scenarios, the bar element may fall into the text of the references as well.</b></div>
				<div>Compilation file of 20060101 uses a former version of the DTD, therefore not valid with this XSD.</div>
			</xs:documentation>
		</xs:annotation>

		<xs:choice minOccurs="0" maxOccurs="3">
			<xs:element name="text" type="compilationText" maxOccurs="1"/>
			<xs:element name="bar" type="bar" maxOccurs="1"/>
			<xs:element name="references" type="compilationReferences" maxOccurs="1"/>
		</xs:choice>


		<xs:attribute name="parentId" type="flatNoteId">
			<xs:annotation>
				<xs:documentation>
					<div>identifier of the "parent" flat note paragraph (i.e. the one which corresponds to the note paragraph in the original note)</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="id" type="flatNoteId">
			<xs:annotation>
				<xs:documentation>
					<div>internal identifier of the flat note paragraph</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="myid" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					<div>internal readable identifier, presentation element, separated by '.', reflecting the prefixes of the ancestors and prefix of the current paragraph</div>
				</xs:documentation>
			</xs:annotation>
			<!--
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:pattern value="[a-z0-9\.]*"/>
				</xs:restriction>
			</xs:simpleType>
			-->
		</xs:attribute>
		<xs:attribute name="type" type="subnoteType"></xs:attribute>
		<xs:attribute name="num" type="xs:nonNegativeInteger">
			<xs:annotation>
				<xs:documentation>
					<div>sequence number of the flattened note paragraph</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="indent" type="indent"></xs:attribute>
		<xs:attribute name="outTypeModeo" type="emptyOrInteger">
			<xs:annotation><xs:documentation>
			<div>when 1: unmodified sequence open attribute</div>
			<div>Obsolete, relevant in compressed mode only.</div>
			</xs:documentation></xs:annotation>
		</xs:attribute>
		<xs:attribute name="outTypeModec" type="emptyOrInteger">
			<xs:annotation>
				<xs:documentation>
					<div>1 unmodified sequence close attribute</div>
					<div>Obsolete, relevant in compressed mode only.</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="outType" type="xs:nonNegativeInteger">
			<xs:annotation>
				<xs:documentation>
					<div>this entry is modified or first/last element of unmodified sequence<br/>
						<b>when 1:</b>either the entry is modified or first/last element of an unmodified note paragraph sequence</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="outTypeKind" type="xs:NMTOKEN">
			<xs:annotation>
				<xs:documentation>
					<div>presentation information for partial presentation of the compilation file</div>
					<div>describes which part of the entry to be presented</div>
					<div>Possible values</div>
					<ul>
						<li>empty or attribute ommitted (default):<br/>
							
							general presentation</li>
						<li>first3:<br/>
							
							no changes after the first 3 words or this flat note is first of a sequence of non-modified paragraphs</li>
						<li>last3:<br/>
							
							no changes before the last 3 words or this flat note is last of a sequence of non-modified paragraphs</li>
						<li>first1last1:<br/>
							this paragraph is not modified but preceding and following is modified</li>
					</ul>
					<div>Obsolete, full mode used only.</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="notetype" type="compilationNoteParagraphModification">
			<xs:annotation>
				<xs:documentation>
					<div>way of modification of the paragraph</div>
					<div>possible values:</div>
					<ul>
						<li>empty or omitted:<br/>the paragraph was not changed</li>
						<li>deleted:<br/>the paragraph was deleted</li>
						<li>new:<br/>the paragraph is a new note paragraph</li>
						<li>modified:<br/>the paragraph is a modified paragraph</li>
						<li>"":<br/>no prefix</li>
						<li>"[0-9]none":<br/>no prefix, on indent level n</li>
						<li>"[0-9]number":<br/>numbered paragraph, on indent level n</li>
						<li>"[0-9]bullet":<br/>bulleted paragraph, on indent level n</li>
					</ul>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="newnum" type="xs:nonNegativeInteger">
			<xs:annotation>
				<xs:documentation>
					<div>sequence number in the new version</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="edition" type="compilationEditionList"></xs:attribute>
		<xs:attribute name="to" type="xs:string">
			<xs:annotation>
				<xs:documentation>
					<div>if present: this paragraph became another paragraph due to move, "to" specifies the target place</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="Orphan" type="xs:nonNegativeInteger">
			<xs:annotation>
				<xs:documentation>
					<div>1 when the paragraph is an orphan</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<!--<xs:attribute name="indentChange" type="xs:string"></xs:attribute>-->
		<xs:attribute name="listtypechangedto" type="subnoteType">
			<xs:annotation>
				<xs:documentation>
					<div>the type of the embedding note or subnote was modified to listtypechangedto</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="listtypechangedfrom" type="subnoteType">
			<xs:annotation>
				<xs:documentation>
					<div>the original type of the embedding note or subnote, that was modified to listtypechangedto</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="indentChange" type="xs:integer">
			<xs:annotation>
				<xs:documentation>
					<div>change of indentation</div>
					<ul>
						<li>positive numbers: indentation increased</li>
						<li>negative numbers: indentation decreased</li>
					</ul>
					<div>Obsolete, appears in compilation file 20060101 only.</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="new-edition" type="compilationEditionList">
			<xs:annotation>
				<xs:documentation>
					<div>the new version indicator</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="del-edition" type="compilationEditionList">
			<xs:annotation>
				<xs:documentation>
					<div>the deleted version indicator</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mod-edition" type="compilationEditionList">
			<xs:annotation>
				<xs:documentation>
					<div>the modified version indicator</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:simpleType name="flatNoteId">
		<xs:annotation>
			<xs:documentation>
				<div>identifier or reference to a flat node</div>
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string"/>
	</xs:simpleType>

	<xs:simpleType name="emptyOrNumber">
		<xs:annotation>
			<xs:documentation>empty or integer number</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value=""/>
			<xs:pattern value="[0-9_]+"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="compilationNoteParagraphModification">
		<xs:annotation>
			<xs:documentation>
				<div>type of modification of the note paragraph</div>
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="modified">
				<xs:annotation>
					<xs:documentation>
						<div>the paragraph is (slightly) modified</div>
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="movemodified">
				<xs:annotation>
					<xs:documentation>
						<div>the paragraph is moved and slightly modified</div>
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="deleted">
				<xs:annotation>
					<xs:documentation>
						<div>the paragraph is deleted</div>
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="new">
				<xs:annotation>
					<xs:documentation>
						<div>the paragraph is new or considerably modified</div>
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="moved">
				<xs:annotation>
					<xs:documentation>
						<div>the paragraph is moved</div>
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="compilationText" mixed="true">
		<xs:annotation>
			<xs:documentation>
				<div>marked-up text, extended with textnew and textdel</div>
			</xs:documentation>
		</xs:annotation>
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:group ref="compilationCharacterStyles"/>
			<xs:element name="bar" type="bar" maxOccurs="1"/>
		</xs:choice>
	</xs:complexType>

	<!--
endash
============================
ipcr_compilation_1-03.xsd
ipcr_scheme_1-02.xsd
-->
	<!--
	<xs:element name="last3Word">
		<xs:annotation>
			<xs:documentation>
				<dl>
					<dt>Elements</dt>
					<dd>firstWord   - position markup after the first word</dd>
					<dd>first3Word  - position markup after the 3rd word</dd>
					<dd>last3Word   - position markup before the 3rd last word</dd>
					<dd>lastWord    - position markup before the last word</dd>
					<dd>bar         - position markup separating text from references in indexes and table-like notes</dd>
				</dl>
				<dl>
					<h3>Structure</h3>
					<dd>EMPTY</dd>
				</dl>
				<dl>
					<dt>Comment</dt>
					<dd>these elements are used to provide a compact presentation of the notes</dd>
				</dl>
			</xs:documentation>
		</xs:annotation>
	</xs:element>
-->
	<xs:complexType name="compilationWordMarkup">
		<xs:annotation>
			<xs:documentation>
				<div>markup of a word, e.g. first, last</div>
			</xs:documentation>
		</xs:annotation>
	</xs:complexType>

	<xs:complexType name="bar">
		<xs:annotation>
			<xs:documentation>
				<div>separator of table-type note references</div>
				<div>before the bar element (left hand side): list of references</div>
				<div>after the bar element (right hand side): description of related subject matter</div>
			</xs:documentation>
		</xs:annotation>
	</xs:complexType>


	<xs:group name="compilationCharacterStyles">
		<xs:annotation>
			<xs:documentation>
				<div>character styles in compilation files</div>
				<div>Compilation character styles contain:</div>
				<ul>
					<li>same character styles as IPC scheme</li>
					<li>special characters</li>
					<li>markup of modified elements, such as new or deleted characters</li>
				</ul>
			</xs:documentation>
		</xs:annotation>
		<xs:choice>
			<xs:element name="textnew" type="textnew"></xs:element>
			<xs:element name="textdel" type="textdel"></xs:element>
			<xs:element name="firstWord" type="compilationWordMarkup"></xs:element>
			<xs:element name="first3Word" type="compilationWordMarkup"></xs:element>
			<xs:element name="lastWord" type="compilationWordMarkup"></xs:element>
			<xs:element name="last3Word" type="compilationWordMarkup"></xs:element>
			<xs:element name="ldash" type="ldash"></xs:element>
			<xs:element name="u" type="compilationU"></xs:element>
			<xs:element name="sup" type="sup"></xs:element>
			<xs:element name="sub" type="sub"></xs:element>
			<xs:element name="img" type="img"></xs:element>
			<xs:element name="sref" type="sref"></xs:element>
			<xs:element name="mref" type="mref"></xs:element>
			<xs:element name="nbsp" type="nbsp"></xs:element>
			<xs:element name="llinkt" type="llinkt"></xs:element>
			<xs:element name="rlinkt" type="rlinkt"></xs:element>
			<xs:element name="larrow" type="larrow"></xs:element>
			<xs:element name="rarrow" type="rarrow"></xs:element>
			<xs:element name="llinkthree" type="llinkthree"></xs:element>
			<xs:element name="rlinkthree" type="rlinkthree"></xs:element>
			<xs:element name="dbond" type="dbond"></xs:element>
			<xs:element name="tbond" type="tbond"></xs:element>
			<xs:element name="regist" type="regist"></xs:element>
			<xs:element name="symbol" type="symbolCharacter"></xs:element>
			<xs:element name="alpha" type="alpha"></xs:element>
			<xs:element name="beta" type="beta"></xs:element>
			<xs:element name="omega" type="omega"></xs:element>
			<xs:element name="ge" type="ge"></xs:element>
			<xs:element name="gt" type="gt"></xs:element>
			<xs:element name="le" type="le"></xs:element>
			<xs:element name="lt" type="lt"></xs:element>
			<xs:element name="degree" type="degree"></xs:element>
			<xs:element name="tm" type="tm"></xs:element>
			<xs:element name="cr" type="cr"></xs:element>
			<xs:element name="oe" type="oe"></xs:element>
			<xs:element name="OE" type="OE"></xs:element>
			<xs:element name="emdash" type="emdash"></xs:element>
			<xs:element name="endash" type="endash"></xs:element>
		</xs:choice>
	</xs:group>


	<xs:complexType name="textnew">
		<xs:annotation>
			<xs:documentation>
				<div>embeds new text in the ipcEntry</div>
			</xs:documentation>
		</xs:annotation>
		<!--
		<xs:complexType mixed="true">
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:group ref="characterStyles"/>
		</xs:choice>
		</xs:complexType>
		-->
		<xs:complexContent mixed="true">
			<xs:extension base="compilationMarkedText"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="textdel">
		<xs:annotation>
			<xs:documentation>
				<div>embeds deleted text in the ipcEntry</div>
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent mixed="true">
			<xs:extension base="compilationMarkedText"/>
		</xs:complexContent>

		<!--
		<xs:complexType mixed="true">
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:group ref="characterStyles"/>
			</xs:choice>
		</xs:complexType>
		-->
	</xs:complexType>



	<xs:complexType name="compilationMarkedText" mixed="true">

		<xs:annotation>
			<xs:documentation>
				<div>text with layout and references, marked with new, delete and positional elements</div>
				<div>similar to marked text in the scheme, but contains the change markup as well</div>
			</xs:documentation>
		</xs:annotation>

		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:group ref="compilationCharacterStyles"/>
			<!--
				<xs:element name="u" type="compilationU"></xs:element>
				<xs:element name="sup" type="sup"></xs:element>
				<xs:element name="sub" type="sub"></xs:element>
				<xs:element name="img" type="img"></xs:element>
				<xs:element name="sref" type="sref"></xs:element>
				<xs:element name="mref" type="mref"></xs:element>
				<xs:element name="nbsp" type="nbsp"></xs:element>
				<xs:element name="llinkt" type="llinkt"></xs:element>
				<xs:element name="rlinkt" type="rlinkt"></xs:element>
				<xs:element name="larrow" type="larrow"></xs:element>
				<xs:element name="rarrow" type="rarrow"></xs:element>
				<xs:element name="llinkthree" type="llinkthree"></xs:element>
				<xs:element name="rlinkthree" type="rlinkthree"></xs:element>
				<xs:element name="symbol" type="symbol"></xs:element>
				<xs:element name="alpha" type="alpha"></xs:element>
				<xs:element name="beta" type="beta"></xs:element>
				<xs:element name="omega" type="omega"></xs:element>
				<xs:element name="ge" type="ge"></xs:element>
				<xs:element name="gt" type="gt"></xs:element>
				<xs:element name="le" type="le"></xs:element>
				<xs:element name="lt" type="lt"></xs:element>
				<xs:element name="dbond" type="dbond"></xs:element>
				<xs:element name="tbond" type="tbond"></xs:element>
				<xs:element name="regist" type="regist"></xs:element>
				<xs:element name="degree" type="degree"></xs:element>
				<xs:element name="tm" type="tm"></xs:element>
				<xs:element name="cr" type="cr"></xs:element>
				<xs:element name="oe" type="oe"></xs:element>
				<xs:element name="OE" type="OE"></xs:element>
				<xs:element name="emdash" type="emdash"></xs:element>
				<xs:element name="endash" type="endash"></xs:element>
				-->
		</xs:choice>
	</xs:complexType>

	<xs:complexType name="compilationU" mixed="true">
		<xs:annotation>
			<xs:documentation>
				<div>underlined text, may contain new and deleted text</div>
			</xs:documentation>
		</xs:annotation>

		<xs:complexContent mixed="true">
			<xs:extension base="u">
				<xs:choice minOccurs="0" maxOccurs="unbounded">
					<xs:element name="textnew" type="textnew"/>
					<xs:element name="textdel" type="textdel"/>
					<xs:element name="firstWord" type="compilationWordMarkup"/>
					<xs:element name="first3Word" type="compilationWordMarkup"/>
					<xs:element name="lastWord" type="compilationWordMarkup"/>
					<xs:element name="last3Word" type="compilationWordMarkup"/>
				</xs:choice>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="compilationReferences" mixed="true">
		<xs:annotation>
			<xs:documentation>
				<div>list of references with mixed text; may contain new and deleted text</div>
			</xs:documentation>
		</xs:annotation>
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="sref" type="sref"/>
			<xs:element name="mref" type="mref"/>
			<xs:element name="firstWord" type="compilationWordMarkup"/>
			<xs:element name="first3Word" type="compilationWordMarkup"/>
			<xs:element name="lastWord" type="compilationWordMarkup"/>
			<xs:element name="last3Word" type="compilationWordMarkup"/>
			<xs:element name="textnew" type="textnew"/>
			<xs:element name="textdel" type="textdel"/>
			<xs:element name="bar" type="bar" maxOccurs="1"/>
		</xs:choice>
	</xs:complexType>



	<!--
title
============================
ipcr_compilation_1-03.xsd
ipcr_scheme_1-02.xsd
-->




	<!--
entryReference
============================
ipcr_compilation_1-03.xsd
ipcr_scheme_1-02.xsd
-->
	<xs:complexType name="compilationEntryReference" mixed="true">
		<xs:annotation>
			<xs:documentation>
				<div>a titlePart may have a sequence of entryReferences (i.e. those presented in text of IPC symbols in parentheses), separated by semicolons</div>
				<h4>Comment:</h4>
				<dl>
					<dt>usual format of entry references</dt>
					<dd>text followed by a sequence of references</dd>
					<dt>take precedences and some others</dt>
					<dd>free order of text and references</dd>
				</dl>
			</xs:documentation>
		</xs:annotation>

		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:group ref="compilationCharacterStyles"/>
		</xs:choice>
	</xs:complexType>




	<xs:simpleType name="asymbol">
		<xs:restriction base="xs:string">
			<xs:pattern value="all">
				<xs:annotation>
					<xs:documentation>all IPC symbols</xs:documentation>
				</xs:annotation>
			</xs:pattern>
			<xs:pattern value="[A-H]">
				<xs:annotation>
					<xs:documentation>section, e.g. C</xs:documentation>
				</xs:annotation>
			</xs:pattern>
			<xs:pattern value="[A-H][0-9][0-9]">
				<xs:annotation>
					<xs:documentation>class, e.g. A01</xs:documentation>
				</xs:annotation>
			</xs:pattern>
			<xs:pattern value="[A-H][0-9][0-9][A-Z]">
				<xs:annotation>
					<xs:documentation>subclass, e.g. A01B</xs:documentation>
				</xs:annotation>
			</xs:pattern>
			<xs:pattern value="[A-H][0-9][0-9][A-Z][0-9]{10}">
				<xs:annotation>
					<xs:documentation>main group or group, e.g. A01B0001000000</xs:documentation>
				</xs:annotation>
			</xs:pattern>
		</xs:restriction>
	</xs:simpleType>

	<xs:attributeGroup name="compilationEntryAttributes">
		<xs:attributeGroup ref="ipcEntryAttributes"/>
		<xs:attribute name="isRenumbered" type="yesno" default="N">
			<xs:annotation>
				<xs:documentation>
					<div>the entry was renumbered</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="amendmentType" type="amendmentType">
			<xs:annotation>
				<xs:documentation>
					<div>type of amendment</div>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>


	<!--
	<xs:simpleType name="compilationEntryType">
		<xs:annotation>
			<xs:documentation>
				<h3>compilationEntryType</h3>
				<div>classifying, indexing or double purpose</div>
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="c"></xs:enumeration>
			<xs:enumeration value="i"></xs:enumeration>
			<xs:enumeration value="d"></xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
-->
	<xs:simpleType name="compilationEditionList">
		<xs:annotation>
			<xs:documentation>
				<div>list of version indicators in compilation files</div>
				<div>in files on and after 20100101: a comma-separated list of versions</div>
				<div>In files before 20100101: list of digits as version indicators is also allowed.</div>
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value=""/>
			<!--
			<xs:pattern value="(19|20)[0-9]{6}[0-9,]*"><xs:annotation><xs:documentation><div>starts with a date, and continue with sequence of dates; pattern is very permittive.</div></xs:documentation></xs:annotation></xs:pattern>
			-->
			<!--
			<xs:pattern value="(19|20)[0-9]{6}(,(19|20)[0-9]{6})?(,(19|20)[0-9]{6})?(,(19|20)[0-9]{6})?(,(19|20)[0-9]{6})?(,(19|20)[0-9]{6})?(,(19|20)[0-9]{6})?(,(19|20)[0-9]{6})?"/>
			-->
			<xs:pattern value="[0-9,]+"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>