<!ELEMENT	Catalog (Table*, Item*)>
<!ATTLIST	Catalog
		StoreID NMTOKEN #REQUIRED
		StoreName CDATA #REQUIRED
		PublishTimestamp CDATA #REQUIRED
		>

<!ELEMENT	Table ((TableField|TableFieldArray)*)>
<!ATTLIST	Table
		ID NMTOKEN #REQUIRED
		>

<!ELEMENT	TableField EMPTY>
<!ATTLIST	TableField
		ID NMTOKEN #REQUIRED
		Type (    text
			| med-text
			| big-text
			| number
			| numbers
			| positive-integer
			| yes-no
			| image
			| file
			| orderable
			) #REQUIRED
		>

<!ELEMENT	TableFieldArray (ArrayValue*)>
<!ATTLIST	TableFieldArray
		ID NMTOKEN #REQUIRED
		Type (    choice
			| choice-eval
			| choice-fn
			| list
			| set
			) #REQUIRED
		>

<!ELEMENT	ArrayValue EMPTY>
<!ATTLIST	ArrayValue
		Value CDATA #REQUIRED
		>

<!ELEMENT	Item ((ItemField|ItemFieldOptions)*)>
<!ATTLIST	Item
		ID NMTOKEN #REQUIRED
		TableID NMTOKEN #REQUIRED
		>

<!ELEMENT	ItemField EMPTY>
<!ATTLIST	ItemField
		TableFieldID NMTOKEN #REQUIRED
		Value CDATA #REQUIRED
		>

<!ELEMENT	ItemFieldOptions (Option*)>
<!ATTLIST	ItemFieldOptions
		TableFieldID NMTOKEN #REQUIRED
		>

<!ELEMENT	Option (OptionValue*)>
<!ATTLIST	Option
		Key CDATA #REQUIRED
		>

<!ELEMENT	OptionValue EMPTY>
<!ATTLIST	OptionValue
		Value CDATA #REQUIRED
		>
