various Misc items where they can occur various satisfactions of the Names production in a NAMES attribute various valid Nmtoken 's in an attribute list declaration. various satisfaction of an NMTOKENS attribute value. valid EntityValue's. Except for entity references, markup is not recognized. valid public IDs. XML decl and doctypedecl just doctypedecl S between decls is not required Empty-element tag must be used for element which are declared EMPTY. Valid doctypedecl with Parameter entity reference. The declaration of a parameter entity must precede any reference to it. Valid doctypedecl with ExternalID as an External Entity declaration. Valid doctypedecl with ExternalID as an External Entity. A parameter entity reference is also used. Valid types of markupdecl. Valid doctypedecl with ExternalID as an External Entity. The external entity has an element declaration. Valid doctypedecl with ExternalID as an Enternal Entity. The external entity begins with a Text Declaration. external subset can be empty Valid doctypedecl with EXternalID as Enternal Entity. The external entity contains a parameter entity reference and condtional sections. Valid use of character data, comments, processing instructions and CDATA sections within the start and end tag. valid element declarations Valid use of contentspec, element content models, and mixed content within an element type declaration. Valid use of contentspec, element content models, choices, sequences and content particles within an element type declaration. The optional character following a name or list governs the number of times the element or content particle may appear. Valid use of contentspec, element content models, choices, sequences and content particles within an element type declaration. The optional character following a name or list governs the number of times the element or content particle may appear. Valid use of contentspec, element content models, choices, and content particles within an element type declaration. The optional character following a name or list governs the number of times the element or content particle may appear. Whitespace is also valid between choices. Valid use of contentspec, element content models, sequences and content particles within an element type declaration. The optional character following a name or list governs the number of times the element or content particle may appear. Whitespace is also valid between sequences. valid Mixed contentspec's. valid AttlistDecls: No AttDef's are required, and the terminating S is optional, multiple ATTLISTS per element are OK, and multiple declarations of the same attribute are OK. a valid AttDef the three kinds of attribute types StringType = "CDATA" the 7 tokenized attribute types enumerated types are NMTOKEN or NOTATION lists NOTATION enumeration has on or more items NMTOKEN enumerations haveon or more items the four types of default values valid conditional sections are INCLUDE and IGNORE valid INCLUDE sections -- options S before and after keyword, sections can nest valid IGNORE sections IGNOREd sections ignore everything except section delimiters Valid entity references. Also ensures that a charref to '&' isn't interpreted as an entity reference open delimiter Valid PEReferences. An EntityDecl is either a GEDecl or a PEDecl Valid GEDecls Valid PEDecls EntityDef is either Entity value or an external id, with an optional NDataDecl valid NDataDecls no prolog Misc items after the document all valid S characters names with all valid ASCII characters, and one from each other class in NameChar various valid Name constructions Requires at least one name. at least one Nmtoken is required. an invalid Nmtoken character. valid attribute values valid CharData valid comments Valid form of Processing Instruction. Shows that whitespace character data is valid before end of processing instruction. Valid form of Processing Instruction. Shows that whitespace character data is valid before end of processing instruction. Valid form of Processing Instruction. Shows that whitespace character data is valid before end of processing instruction. valid CDSect's. Note that a CDStart in a CDSect is not recognized as such prolog can be empty XML declaration only XML decl and Misc Test shows a valid XML declaration along with version info. Test shows a valid XML declaration along with encoding declaration. Test shows a valid XML declaration along with Standalone Document Declaration. Test shows a valid XML declaration, encoding declarationand Standalone Document Declaration. Test shows a prolog that has the VersionInfo delimited by double quotes. Test shows a prolog that has the VersionInfo delimited by single quotes. Test shows whitespace is allowed in prolog before version info. Test shows whitespace is allowed in prolog on both sides of equal sign. Test shows whitespace is NOT necessary before or after equal sign of versioninfo. Test shows whitespace can be used on both sides of equal sign of versioninfo. The valid version number. We cannot test others because a 1.0 processor is allowed to fail them. Comments are valid as the Misc part of the prolog. Processing Instructions are valid as the Misc part of the prolog. Whitespace is valid as the Misc part of the prolog. A combination of comments, whitespaces and processing instructions are valid as the Misc part of the prolog. Double quotes can be used as delimeters for the value of a Standalone Document Declaration. Single quotes can be used as delimeters for the value of a Standalone Document Declaration. Empty element tag may be used for any element which has no content. Character data is valid element content. Elements content can be empty. Whitespace is valid within a Start-tag. Attributes are valid within a Start-tag. Whitespace and Multiple Attributes are valid within a Start-tag. Attributes are valid within a Start-tag. Whitespace is valid within a Start-tags Attribute. Test shows proper syntax for an End-tag. Whitespace is valid after name in End-tag. Valid display of an Empty Element Tag. Empty Element Tags can contain an Attribute. Whitespace is valid in an Empty Element Tag following the end of the attribute value. Whitespace is valid after the name in an Empty Element Tag. Whitespace and Multiple Attributes are valid in an Empty Element Tag. valid character references PEDef is either an entity value or an external id valid external identifiers Validity Constraint: No duplicate tokens S cannot occur before the prolog comments cannot occur before the prolog only one document element document element must be complete. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Use of illegal character within XML document. Name contains invalid character. Name contains invalid character. Name contains invalid character. a Name cannot start with a digit a Name cannot start with a '.' a Name cannot start with a "-" a Name cannot start with a CombiningChar a Name cannot start with an Extender EntityValue excludes '%' EntityValue excludes '&' incomplete character reference quote types must match quote types must match attribute values exclude '<' attribute values exclude '&' quote types must match quote types must match cannot contain delimiting quotes '"' excluded '\' excluded entity references excluded '>' excluded '<' excluded built-in entity refs excluded The public ID has a tab character, which is disallowed '<' excluded '&' excluded "]]>" excluded comments can't end in '-' one comment per comment (contrasted with SGML) can't include 2 or more adjacent '-'s "xml" is an invalid PITarget a PITarget must be present S after PITarget is required no space before "CDATA" no space after "CDATA" CDSect's can't nest prolog must start with XML decl prolog must start with XML decl "xml" must be lower-case VersionInfo must be supplied VersionInfo must come first SDDecl must come last no SGML-type PIs quote types must match quote types must match Comment is illegal in VersionInfo. Illegal character in VersionNum. Illegal character in VersionNum. References aren't allowed in Misc, even if they would resolve to valid Misc. only declarations in DTD. A processor must not pass unknown declaration types. An XML declaration is not the same as a TextDecl external subset excludes doctypedecl quote types must match quote types must match initial S is required quotes are required yes or no must be lower case start-tag requires end-tag end-tag requires start-tag XML documents contain one or more elements XML declarations must be correctly terminated XML declarations must be correctly terminated S is required between attributes tags start with names, not nmtokens tags start with names, not nmtokens no space before name quotes are required (contrast with SGML) attribute name is required (contrast with SGML) Eq required no space before name cannot end with "/>" no NET (contrast with SGML) no non-comment declarations no conditional sections no conditional sections Illegal space before Empty element tag. Illegal space after Empty element tag. Illegal comment in Empty element tag. Whitespace required between attributes. Duplicate attribute name is illegal. ELEMENT must be upper case. S before contentspec is required. only one content spec no comments in declarations (contrast with SGML) no parens on declared content no inclusions (contrast with SGML) no exclusions (contrast with SGML) no space before occurrence single group can't be both declared and modeled Invalid operator '|' must match previous operator ',' Illegal character '-' in Element-content model Optional character must follow a name or list Illegal space before optional character Illegal space before optional character Illegal space before optional character connectors must match connectors must match occurrence on #PCDATA group must be * occurrence on #PCDATA group must be * #PCDATA must come first occurrence on #PCDATA group must be * only '|' connectors Only '|' connectors and occurrence on #PCDATA group must be * no nested groups A name is required A name is required S is required before default S is required before type type is required default is required name is requried don't pass unknown attribute types must be upper case no IDS type no NUMBER type no NAME type no ENTITYS type - types must be upper case types must be upper case no keyword for NMTOKEN enumeration at least one value required separator must be '|' notations are NAMEs, not NMTOKENs -- note: Leaving the invalid notation undeclared would cause a validating parser to fail without checking the name syntax, so the notation is declared with an invalid name. A parser that reports error positions should report an error at the AttlistDecl on line 6, before reaching the notation declaration. NOTATION must be upper case S after keyword is required parentheses are require values are unquoted values are unquoted at least one required separator must be "," values are unquoted keywords must be upper case S is required after #FIXED only #FIXED has both keyword and value #FIXED required value only one default type no other types, including TEMP, which is valid in SGML INCLUDE must be upper case no spaces in terminating delimiter IGNORE must be upper case delimiters must be balanced section delimiters must balance section delimiters must balance terminating ';' is required no S after '&#' no hex digits in numeric reference only hex digits in hex references no references to non-characters no references to non-characters terminating ';' is required no S after '&' no S before ';' terminating ';' is required no S after '%' no S before ';' This is neither S is required before EntityDef Entity name is a Name, not an NMToken no S after "<!" S is required after "<!ENTITY" S is required after "<!ENTITY" S is required after '%' S is required after name Entity name is a name, not an NMToken No typed replacement text Only one replacement value No NDataDecl on replacement text Value is required No NDataDecl without value no NDataDecls on parameter entities value is required only one value S required after "PUBLIC" S required after "SYSTEM" S required between literals "SYSTEM" implies only one literal only one keyword "PUBLIC" requires two literals (contrast with SGML) S is required before "NDATA" "NDATA" is upper-case notation name is required notation names are Names system literals may not contain URI fragments