<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<xsd:element name="scheme-compilation" type="scheme-compilation-type">
		<xsd:annotation>
			<xsd:documentation>				A flat list of CPC entries reflecting the compilation of changes to the CPC Scheme. Entries are new, modified, deleted, frozen, or unchanged. Unchanged entries are generally provided for hierarchical context. These changes were implemented through Projects or as Editorial Corrections. 
</xsd:documentation>
		</xsd:annotation>
	<xsd:unique name="uniqueClassificationSymbol">
			<xsd:annotation>
				<xsd:documentation>Checks that every classification symbol is unique within a subclass</xsd:documentation>
			</xsd:annotation>
			<xsd:selector xpath="compilation-item"/>
			<xsd:field xpath="@sort-key"/>
			<xsd:field xpath="@amendment-type"/>
			<xsd:field xpath="@level"/>
		</xsd:unique>
	</xsd:element>
	<xsd:complexType name="scheme-compilation-type">
		<xsd:sequence>
			<xsd:element ref="compilation-item" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute ref="publication-date" use="required"/>
	</xsd:complexType>
	<xsd:attribute name="alt" type="xsd:string">
		<xsd:annotation>
			<xsd:documentation>Alternate text for an image</xsd:documentation>
			</xsd:annotation>
	</xsd:attribute>
	<xsd:simpleType name="amendment-category-type">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="C">
				<xsd:annotation>
					<xsd:documentation>Entries with modified file scope where reclassification of documents from the entries is involved;</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="D">
				<xsd:annotation>
					<xsd:documentation>Deleted entries;</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="E">
				<xsd:annotation>
					<xsd:documentation>Existing entries with enlarged file scope, which receive documents from other entries (e.g. C or D entries), e.g. when a limiting reference is removed from the entry title; E type will be deprecated in lieu of T type when T type is activated.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="F">
				<xsd:annotation>
					<xsd:documentation>Frozen entries will be deleted once reclassification of documents from the entries is completed;</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="M">
				<xsd:annotation>
					<xsd:documentation>Entries with no change to the file scope (no reclassification);</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="N">
				<xsd:annotation>
					<xsd:documentation>New entries where reclassification into entries is involved;</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="Q">
				<xsd:annotation>
					<xsd:documentation>New entries which are firstly populated with documents via administrative transfers from deleted (D) entries. Afterwards, the transferred documents into the Q entry will either stay or be moved to more appropriate entries, as determined by intellectual reclassification;</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="T">
				<xsd:annotation>
					<xsd:documentation>Existing entries with enlarged file scope, which receive documents from other entries (e.g. C or D entries), e.g. when a limiting reference is removed from the entry title; T type will be used in place of E type when E type is deprecated.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="U">
				<xsd:annotation>
					<xsd:documentation>Entries that are unchanged</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:attribute name="amendment-type" type="amendment-category-type">
		<xsd:annotation>
			<xsd:documentation>Code which represents the type of modification to the entry.</xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:element name="br" type="br-type">
		<xsd:annotation>
			<xsd:documentation>Line break in text</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:simpleType name="br-type">
		<xsd:restriction base="xsd:token">
			<xsd:maxLength value="0"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:element name="classification-symbol" type="simple-symbol-type">
		<xsd:annotation>
			<xsd:documentation>A CPC symbol made up of the following consituent parts, constrained by the cpc-symbol-type 		
SECTION: Sections are the highest level of hierarchy of the CPC Classification. Each section is designated by one of the capital letters 'A' through 'H' as recommended in WIPO Standard ST.8, with the addition of section 'Y', which is unique to CPC.
CLASS: Each section is subdivided into classes which are the second hierarchical level of the IPC Classification. Each class symbol consists of the section symbol followed by a two-digit number as recommended in WIPO standard ST.8.
SUBCLASS: Each class comprises one or more subclasses which are the third hierarchical level of the CPC Classification. Each subclass symbol consists of the class symbol followed by a capital letter from 'A' to 'Z' as recommended in WIPO Standard ST.8.           					
MAINGROUP: Main Group comprises a subclass portion of the symbol followed by one- to four-digit number (1 to 9999) prior to the slash ("/") and the values "00" (reserved for main groups) following the slash. 
SUBGROUP: Subgroups form subdivisions under the main groups of the CPC Classification. Each subgroup symbol comprises a subclass portion, one- to four-digit numbers prior to the slash (shared by the main group) and two- to six-digit numbers (01 to 999999) following the slash.
Subsection headings (which group multiple classes under a common heading) and Guidance headings (which group multiple main groups under a common heading) are given a classification-symbol value even though these do not appear in the publication.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:simpleType name="classification-value-category-type">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="invention"/>
			<xsd:enumeration value="additional"/>
			<xsd:enumeration value="source"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:attribute name="classification-value-type" type="classification-value-category-type">
		<xsd:annotation>
			<xsd:documentation>Symbols may be allocated to documents as "invention information" or "additional information". "Invention information" is technical information in the total disclosure of a patent document (for example, description, drawings, claims) that represents an addition to the state of the art (i.e. all novel and unobvious subject matter specifically disclosed in a document). "Additional information" is non‐trivial technical information which does not in itself represent an addition to the state of the art but might constitute useful information for the searcher. 
							The optional classification-value-type attribute is used to indicate how documents transferred administratively should be allocated. If designated, documents should be allocated as invention information, additional information, or should retain the classification value corresponding to the source. </xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:element name="class-ref" type="class-ref-type">
		<xsd:annotation>
			<xsd:documentation>An element to encapsulate a cross referenced classification symbol in CPC, or rarely, a reference to a symbol in the IPC scheme</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="class-ref-type">
		<xsd:simpleContent>
			<xsd:extension base="xsd:string">
				<xsd:attribute ref="scheme" use="required"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>
	<xsd:element name="compilation-item" type="compilation-item-type">
		<xsd:annotation>
			<xsd:documentation>				New, modified, deleted, frozen, or unchanged CPC entries. If an entry was deleted with an administrative transfer to other CPC groups, the transfer information from the Revision Concordance List is also provided. Unchanged entries are always given the amendment-type 'U'. All other amendment-types are derived from the project information. 
</xsd:documentation>
		</xsd:annotation>
		</xsd:element>
			<xsd:complexType name="compilation-item-type">
		<xsd:sequence>
				<xsd:element ref="classification-symbol"/>
				<xsd:element ref="transferred-to" minOccurs="0"/>
				<xsd:element ref="title"/>
				<xsd:choice minOccurs="0" maxOccurs="unbounded">
					<xsd:element ref="del"/>
					<xsd:element ref="ins"/>
					<xsd:element ref="note-content"/>
					<xsd:element ref="warning-content"/>
				</xsd:choice>
			</xsd:sequence>
			<xsd:attribute ref="sort-key" use="required"/>
			<xsd:attribute ref="project-info" use="required"/>
			<xsd:attribute ref="amendment-type"/>
			<xsd:attribute ref="former-level"/>
			<xsd:attribute ref="level" use="required"/>
			<xsd:attribute ref="former-heading-end-symbol"/>
			<xsd:attribute ref="heading-end-symbol"/>
			<xsd:attribute ref="parent"/>
			<xsd:attribute ref="is-frozen"/>
			</xsd:complexType>
	<xsd:element name="content-item" type="content-item-type">
		<xsd:annotation>
			<xsd:documentation>				An individual Note or Warning. For the purposes of comparison, if there are multiple Notes or Warnings, the Note or Warning number is provided prior to the Note/Warning content.
</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
		<xsd:complexType name="content-item-type" mixed="true">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:element ref="del"/>
			<xsd:element ref="ins"/>
			<xsd:element ref="class-ref"/>
			<xsd:element ref="media"/>
			<xsd:element ref="sub"/>
			<xsd:element ref="sup"/>
			<xsd:element ref="u"/>
			<xsd:element ref="ul"/>
			<xsd:element ref="content-table"/>
			<xsd:element ref="preformatted-text"/>
			<xsd:element ref="reclassification-date"/>
			<xsd:element ref="br"/>
		</xsd:choice>
	</xsd:complexType>
	<xsd:element name="content-table" type="content-table-type">
		<xsd:annotation>
			<xsd:documentation>Table content located in a Note or Warning</xsd:documentation>
		</xsd:annotation>
		</xsd:element>
	<xsd:complexType name="content-table-type">
		<xsd:choice maxOccurs="unbounded">
			<xsd:element ref="del"/>
			<xsd:element ref="ins"/>
			<xsd:element ref="tr"/>
		</xsd:choice>
	</xsd:complexType>
	<xsd:element name="del" type="ins-del-type">
		<xsd:annotation>
			<xsd:documentation>				Text which was deleted from an existing CPC entry (i.e. in the title, notes, or warnings). Includes inline and block-level text (e.g. note-content, table rows, etc.). 
</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:attribute name="file-name" type="xsd:string">
		<xsd:annotation>
			<xsd:documentation>Image file name</xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:attribute name="former-heading-end-symbol" type="simple-symbol-type">
		<xsd:annotation>
			<xsd:documentation>In cases where the end interval of a guidance or subsection heading is changed, the former main group defining the end interval is provided.</xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:attribute name="former-level" type="level-type">
		<xsd:annotation>
			<xsd:documentation>Corresponds to the former level of a group when an indent change occurs. </xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:attribute name="heading-end-symbol" type="simple-symbol-type">
		<xsd:annotation>
			<xsd:documentation>The end interval of a guidance or subsection heading. For guidance headings, this is the last main group covered by the heading. For subsection headings, this is the last class covered by the heading.</xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:attribute name="id" type="xsd:string">
		<xsd:annotation>
			<xsd:documentation>Image id number. Image id's are unique to the file, not the instance of the image within the scheme</xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:element name="ins" type="ins-del-type">
		<xsd:annotation>
			<xsd:documentation>				Text which was inserted into an existing CPC entry (i.e. in the title, notes, or warnings).  Includes inline and block-level text (e.g. note-content, table rows, etc.)
</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="ins-del-type" mixed="true">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:element ref="class-ref"/>
			<xsd:element ref="sub"/>
			<xsd:element ref="sup"/>
			<xsd:element ref="tr"/>
			<xsd:element ref="td"/>
			<xsd:element ref="media"/>
			<xsd:element ref="u"/>
			<xsd:element ref="ul"/>
			<xsd:element ref="li"/>
			<xsd:element ref="br"/>
			<xsd:element ref="note-content"/>
			<xsd:element ref="preformatted-text"/>
			<xsd:element ref="warning-content"/>
			<xsd:element ref="content-item"/>
			<xsd:element ref="content-table"/>
			<xsd:element ref="reclassification-date"/>
		</xsd:choice>
	</xsd:complexType>
	<xsd:attribute name="is-frozen" type="xsd:boolean">
		<xsd:annotation>
			<xsd:documentation>Indicates whether a symbol is currently frozen, or in the case of a deleted symbol, whether the symbol was frozen and underwent finalisation to delete the symbol after reclassification was completed. </xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:attribute name="level" type="level-type">
		<xsd:annotation>
			<xsd:documentation>Represents the hierarchical level of the CPC entry. 
				Section = level 2, 
				Subsection heading = level 3, 
				Class = level 4, 
				Subclass = level 5,
				Guidance heading = level 6, 
				Main group = level 7, 
				Subgroups = level 8 through 19.</xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:simpleType name="level-type">
		<xsd:restriction base="xsd:integer">
			<xsd:minInclusive value="2"/>
			<xsd:maxInclusive value="19"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:element name="li" type="content-item-type">
		<xsd:annotation>
			<xsd:documentation>List item</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:attribute name="list-style" type="xsd:string">
		<xsd:annotation>
			<xsd:documentation>Corresponds to the list style of the 'subnote' content</xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:element name="media" type="media-type">
		<xsd:annotation>
			<xsd:documentation>Image used in CPC scheme</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:simpleType name="media-extension-category-type">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="gif"/>
			<xsd:enumeration value="jpeg"/>
			<xsd:enumeration value="tif"/>
			<xsd:enumeration value="bmp"/>
			<xsd:enumeration value="png"/>
			<xsd:enumeration value="wav"/>
			<xsd:enumeration value="wma"/>
			<xsd:enumeration value="wmv"/>
			<xsd:enumeration value="mp3"/>
			<xsd:enumeration value="unknown"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="media-type">
		<xsd:attribute ref="id" use="required"/>
			<xsd:attribute ref="file-name"/>
			<xsd:attribute name="type" type="media-extension-category-type" use="required"/>
		<xsd:attribute ref="alt"/>
			</xsd:complexType>
	<xsd:complexType name="note-and-warning-content-type">
		<xsd:choice maxOccurs="unbounded">
			<xsd:element ref="del" minOccurs="0"/>
			<xsd:element ref="ins" minOccurs="0"/>
			<xsd:element ref="content-item" maxOccurs="unbounded"/>
		</xsd:choice>
	</xsd:complexType>
	<xsd:element name="note-content" type="note-and-warning-content-type">
		<xsd:annotation>
			<xsd:documentation>Contains one or more Notes</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:attribute name="parent" type="simple-symbol-type">
		<xsd:annotation>
			<xsd:documentation>The parent group is provided for hierarchical context</xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:element name="preformatted-text" type="preformatted-text-type">
		<xsd:annotation>
			<xsd:documentation>Text in note content which are preformatted and should have preserved white space</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
		<xsd:complexType name="preformatted-text-type" mixed="true">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:element ref="br"/>
			<xsd:element ref="class-ref"/>
		<xsd:element ref="del"/>
			<xsd:element ref="ins"/>
		</xsd:choice>
	</xsd:complexType>
	<xsd:attribute name="project-info" type="xsd:string">
		<xsd:annotation>
			<xsd:documentation>The project number wherein the changes to the compilation entry originated. Indicated as "N/A" if projects originated from Editorial Corrections or the originating project could not be found. Though rare, it is possible that an entry has changes originating from multiple projects. In those cases, the attribute has a comma-separated list of project information. Projects ending in "-F" indicate finalisation after reclassification was completed.</xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:attribute name="publication-date" type="xsd:date">
		<xsd:annotation>
			<xsd:documentation>Date in which the Scheme entered into force.</xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:element name="reclassification-date" type="xsd:date">
		<xsd:annotation>
			<xsd:documentation>Date indicating when reclassification began</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:attribute name="scheme" type="scheme-category-type">
		<xsd:annotation>
			<xsd:documentation>Indicates the source of symbols is from cpc, ipc or not mapped. The "ipc" value is only used when distinguishing symbols used in the IPC scheme from the CPC scheme. Symbols designated "not-mapped" do not exist in the CPC scheme (i.e. are invalid symbols).</xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:simpleType name="scheme-category-type">
		<xsd:annotation>
			<xsd:documentation>				Simple type describing a list of schemes
</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="cpc"/>
			<xsd:enumeration value="ipc"/>
			<xsd:enumeration value="not-mapped"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="simple-symbol-type">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[A-HY]([0-9][0-9])?"/>
			<xsd:pattern value="[A-HY]([0-9][0-9])[A-HJ-NP-Z]"/>
			<xsd:pattern value="[A-HY]([0-9][0-9])[A-HJ-NP-Z]([1-9]\d{0,2}/\d{2,6})"/>
			<xsd:pattern value="[A-HY]([0-9][0-9])[A-HJ-NP-Z](2\d{3}/\d{2,6})"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:attribute name="sort-key" type="simple-symbol-type">
		<xsd:annotation>
			<xsd:documentation>formatted symbol for sorting purpose. This allows 2000-series breakdown codes to be interleaved in the Scheme.</xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:element name="sub" type="xsd:string">
		<xsd:annotation>
			<xsd:documentation>Subscript formatted text</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="sup" type="xsd:string">
		<xsd:annotation>
			<xsd:documentation>Superscript formatted text</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="target-symbol" type="target-symbol-type">
		<xsd:annotation>
			<xsd:documentation>New or existing entries which receive documents through intellectual reclassification or administrative transfer from source entries.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="target-symbol-type">
		<xsd:simpleContent>
			<xsd:extension base="xsd:string">
				<xsd:attribute ref="classification-value-type"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>
	<xsd:element name="td" type="content-item-type">
		<xsd:annotation>
			<xsd:documentation>Table cell</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
		<xsd:element name="title" type="title-type">
			<xsd:annotation>
			<xsd:documentation>				For the purposes of comparison, CPC titles were "flattened". Only class-ref, insertion/deletion markup, and  inline formatting markup are present in a title.  
</xsd:documentation>
		</xsd:annotation>
		</xsd:element>
	<xsd:complexType name="title-type" mixed="true">
			<xsd:choice minOccurs="0" maxOccurs="unbounded">
				<xsd:element ref="del"/>
				<xsd:element ref="ins"/>
				<xsd:element ref="class-ref"/>
				<xsd:element ref="media"/>
				<xsd:element ref="sub"/>
				<xsd:element ref="sup"/>
				<xsd:element ref="u"/>
			</xsd:choice>
		</xsd:complexType>
	<xsd:element name="tr" type="tr-type">
		<xsd:annotation>
			<xsd:documentation>table row</xsd:documentation>
		</xsd:annotation>
			</xsd:element>
	<xsd:simpleType name="transfer-category-type">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="administrative"/>
			<xsd:enumeration value="intellectual"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:element name="transferred-to" type="transferred-to-type">
		<xsd:annotation>
			<xsd:documentation>				Contains one or more target symbols for the reclassification (or administrative transfer) of documents from corresponding to the source classification symbol. For the compilation of changes, this element is only provided for deleted entries with administrative transfers.  
</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="transferred-to-type">
		<xsd:sequence>
			<xsd:element ref="target-symbol" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute ref="transfer-type" use="required"/>
	</xsd:complexType>
	<xsd:attribute name="transfer-type" type="transfer-category-type">
		<xsd:annotation>
			<xsd:documentation>Indicates administrative or intellectual transfer</xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:complexType name="tr-type">
		<xsd:sequence>
			<xsd:element ref="td" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="u" type="u-type">
		<xsd:annotation>
			<xsd:documentation>Underlined text</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="ul" type="ul-type">
		<xsd:annotation>
			<xsd:documentation>A list representing 'subnote' content</xsd:documentation>
		</xsd:annotation>
		</xsd:element>
			<xsd:complexType name="ul-type">
		<xsd:choice maxOccurs="unbounded">
				<xsd:element ref="del"/>
				<xsd:element ref="ins"/>
				<xsd:element ref="li"/>
			</xsd:choice>
			<xsd:attribute ref="list-style" use="required"/>
		</xsd:complexType>
	<xsd:complexType name="u-type" mixed="true">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:element ref="class-ref"/>
		</xsd:choice>
	</xsd:complexType>
	<xsd:element name="warning-content" type="note-and-warning-content-type">
		<xsd:annotation>
			<xsd:documentation>Contains one or more Warnings</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
</xsd:schema>
