<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v3.0 (http://www.xmlspy.com) by Edward Staub (private) -->
<!--DTD generated by XML Spy v3.0 (http://www.xmlspy.com)-->
<!ENTITY nbsp "&#160;">
<!ELEMENT a (strong | em)>
<!ATTLIST a
	href CDATA #IMPLIED
	name CDATA #IMPLIED
>
<!ELEMENT cat (#PCDATA)>
<!ELEMENT categories (cat+)>
<!ELEMENT def (#PCDATA | br | a | ul)*>

<!ELEMENT br EMPTY>
<!ELEMENT seeAlso EMPTY>
<!ELEMENT edReqNote (#PCDATA)>
<!ELEMENT em (#PCDATA | small)*>
<!ELEMENT li (#PCDATA | a | em | ul)*>
<!ELEMENT small (#PCDATA)>
<!ELEMENT strong (#PCDATA)>
<!ELEMENT ul (li*)>
<!ELEMENT mailHeaderSet (li+)>
<!ATTLIST mailHeaderSet
	id (gen | xdev) #REQUIRED
>
<!ELEMENT mailHeaderSets (mailHeaderSet+)>
<!ELEMENT ref (#PCDATA | br)*>
<!ATTLIST ref
	set CDATA #REQUIRED
	id CDATA #REQUIRED
>
<!ELEMENT refs (ref)*>
<!ELEMENT voteSet (vote*)>
<!ATTLIST voteSet
	opened CDATA #REQUIRED
	closed CDATA #REQUIRED
	callForVote CDATA #IMPLIED
>
<!ELEMENT vote (voteComment?)>
<!ATTLIST vote
	voter CDATA #REQUIRED
	email CDATA #REQUIRED
	vote CDATA #REQUIRED
>
<!ELEMENT voteComment (#PCDATA)>
<!ELEMENT req (def, seeAlso*, edReqNote*, voteSet?, refs)>
<!ATTLIST req
	status (approved | tooQuiet | hardnessConflict | vetoConflict | rejected | unevaluated) "unevaluated"
	id CDATA #REQUIRED
	strength (hard | soft) #REQUIRED
	cat CDATA #REQUIRED
>
<!ATTLIST seeAlso
	id CDATA #REQUIRED
	type (Conflict) #IMPLIED
>
<!ELEMENT requirementCatalog (categories, requirements, mailHeaderSets)>
<!ATTLIST requirementCatalog
	date CDATA #REQUIRED
	version CDATA #REQUIRED
>
<!ELEMENT requirements (req+)>
