<!-- History
20050519 TA split from RIPCIS
20050525 TA illustrationversion added to provide format support
20080605 TA comments for structure are amended
-->

<!--  IPCIllusrations: root for IPCR_ELAYER_ILLUSTRATION_XXXXMMDD files
Structure:
	list of IPCIllustrationSections (maybe empty); each contains illustrations related to a certain section
Attributes:
	edition (mandatory): date of the version in YYYYMMDD format
-->
<!ELEMENT IPCIllustrations (IPCIllustrationsSection*)>
<!ATTLIST IPCIllustrations
	edition	CDATA	#REQUIRED
>


<!--  IPCIllustrationSection: illustrations related to a certain section
Structure:
	list of IPCIllustrationClasses (may be empty); an illustrationClass contains illustrations related to a certain class
Attributes:
	symbol (mandatory): valid IPC section symbol (in "A" format)
	illustrationsNo (mandatory): number of illustrations that belong to the "section" but does not belong to any of its "classes"
-->
<!ELEMENT IPCIllustrationsSection (IPCIllustrationsClass*)>
<!ATTLIST IPCIllustrationsSection
	symbol CDATA	#REQUIRED
	illustrationsNo CDATA	#REQUIRED
>

<!--  IPCIllustrationClass: illustrations related to a certain class
Structure:
	illustrations (optional): illustrations that belong to the "class" but does not belong to any of its "subclasses"
	list of IPCIllustrationSublasses (may be empty); they contain illustrations related to a certain subclass within the class
Attributes:
	symbol (mandatory): valid IPC class symbol in A99 format
	illustrationsNo (mandatory, number): number of illustrations that belong to the "class" but does not belong to any of its "subclasses"
-->
<!ELEMENT IPCIllustrationsClass (illustrations?,IPCIllustrationsSubclass*)>
<!ATTLIST IPCIllustrationsClass
	symbol CDATA	#REQUIRED
	illustrationsNo CDATA	#REQUIRED
>


<!--  IPCIllustrationSubclass: illustrations related to a certain subclass
Structure:
	illustrations (optional): illustrations that belong to the "subclass" but does not belong to its "maingroups"
	list of IPCIllustrationMaingroups (maybe empty): an IPCIllustrationMaingroup contains illustrations related to a certain maingroup within the subclass
Attributes:
	symbol (mandatory) valid IPC subclass symbol in A99A format
	illustrationsNo (mandatory, number): number of illustrations that belong to the "subclass" but does not belong to any of its "maingroups"
-->
<!ELEMENT IPCIllustrationsSubclass (illustrations?,IPCIllustrationsMaingroup*)>
<!ATTLIST IPCIllustrationsSubclass
	symbol CDATA	#REQUIRED
	entryType CDATA	#REQUIRED
	illustrationsNo CDATA	#REQUIRED
>


<!--  IPCIllustrationMaingroup: illustrations related to a certain maingroup
Structure:
	illustrations (optional): that belong to the "maingroup" denoted by the symbol but does not belong to any to its "groups"
	list of IPCIllustrationGroups (maybe empty): an illustrationGroup contains illustrations related to a certain group within the maingroup
Attributes:
	symbol (mandatory): valid IPC maingroup symbol (in A99AZZZM000000 format)
	entryType (optional with default "c", restricted values): entry type of the IPC denoted by "symbol",
		possible values, in order to cover prereform entry types as well:
		c for classification symbols
		d for double purpose
		i for indexing codes
	illustrationsNo (mandatory, number): number of illustrations that belong to the "maingroup" but does not belong to any of its "groups"
-->
<!ELEMENT IPCIllustrationsMaingroup (illustrations?,IPCIllustrationsGroup*)>
<!ATTLIST IPCIllustrationsMaingroup
	symbol CDATA	#REQUIRED
	entryType (c|d|i) "c"
	illustrationsNo CDATA	#REQUIRED
>

<!--  IPCIllustrationGroup: illustrations related to a certain group
Structure:
	illustrations  (optional): illustraions that belong to the IPC group denoted by the symbol attribute
	hierarchy of groups is not maintained in this file!
Attributes:
	symbol (mandatory) valid IPC group symbol (in A99AZZZMGGZZZZ format)
	entryType (optional with default "c", restricted values): entry type of the IPC denoted by "symbol",
		possible values, in order to cover prereform entry types as well:
		c for classification symbols
		d for double purpose
		i for indexing codes
	illustrationsNo (mandatory, number) number of illustrations that belong to the group denoted by the symbol
-->
<!ELEMENT IPCIllustrationsGroup (illustrations?)>
<!ATTLIST IPCIllustrationsGroup
	symbol CDATA	#REQUIRED
	entryType (c|d|i) "c"
	illustrationsNo CDATA	#REQUIRED
>


<!--  illustrations: embedding the list of "illustration"s
Structure:
	list of illustration elements (non-empty)
-->
<!ELEMENT illustrations (illustration+)>

<!--  illustration: data for a single illustration
Attributes:
	type	(restricted values): type of the illustration
		possible values:
		scheme: file illustrating the scheme
		definition: file illustrating the definition
		this attribute is not filled in IPC 20060101
	label	a readable label
	src	default file (GIF if present)
	remarkEN
	remarkFR manual remarks in English or French
-->
<!ELEMENT illustration (illustrationversion*)>
<!ATTLIST illustration
	type		(scheme|definition)	#IMPLIED
	label		CDATA	#IMPLIED
	src		CDATA	#REQUIRED
	remarkEN	CDATA	#IMPLIED
	remarkFR	CDATA	#IMPLIED
>
<!--  illustrationversion: a single illustration file
Attributes:
	format	free format specifier, typically an extension of the file
	src	file name of the illustration
-->
<!ELEMENT illustrationversion EMPTY>
<!ATTLIST illustrationversion
	format		CDATA	#IMPLIED
	src		CDATA	#REQUIRED
>
