Attribute values must start with attribute names, not "?". Names may not start with "."; it's not a Letter. Processing Instruction target name is required. SGML-ism: processing instructions end in '?>' not '>'. Processing instructions end in '?>' not '?'. XML comments may not contain "--" General entity references have no whitespace after the entity name and before the semicolon. Entity references must include names, which don't begin with '.' (it's not a Letter or other name start character). Character references may have only decimal or numeric strings. Ampersand may only appear as part of a general entity reference. SGML-ism: attribute values must be explicitly assigned a value, it can't act as a boolean toggle. SGML-ism: attribute values must be quoted in all cases. The quotes on both ends of an attribute value must match. Attribute values may not contain literal '<' characters. Attribute values need a value, not just an equals sign. Attribute values need an associated name. CDATA sections need a terminating ']]>'. CDATA sections begin with a literal '<![CDATA[', no space. End tags may not be abbreviated as '</>'. Attribute values may not contain literal '&' characters except as part of an entity reference. Attribute values may not contain literal '&' characters except as part of an entity reference. Character references end with semicolons, always! Digits are not valid name start characters. Digits are not valid name start characters. Text may not contain a literal ']]>' sequence. Text may not contain a literal ']]>' sequence. Comments must be terminated with "-->". Processing instructions must end with '?>'. Text may not contain a literal ']]>' sequence. A form feed is not a legal XML character. A form feed is not a legal XML character. A form feed is not a legal XML character. An ESC (octal 033) is not a legal XML character. A form feed is not a legal XML character. The '<' character is a markup delimiter and must start an element, CDATA section, PI, or comment. Text may not appear after the root element. Character references may not appear after the root element. Tests the "Unique Att Spec" WF constraint by providing multiple values for an attribute. Tests the Element Type Match WFC - end tag name must match start tag name. Provides two document elements. Provides two document elements. Invalid End Tag Provides #PCDATA text after the document element. Provides two document elements. Invalid Empty Element Tag This start (or empty element) tag was not terminated correctly. Invalid empty element tag invalid whitespace Provides a CDATA section after the root element. Missing start tag Empty document, with no root element. CDATA is invalid at top level of document. Invalid character reference. End tag does not match start tag. PUBLIC requires two literals. Invalid Document Type Definition format. Invalid Document Type Definition format - misplaced comment. This isn't SGML; comments can't exist in declarations. Invalid character , in ATTLIST enumeration String literal must be in quotes. Invalid type NAME defined in ATTLIST. External entity declarations require whitespace between public and system IDs. Entity declarations need space after the entity name. Conditional sections may only appear in the external DTD subset. Space is required between attribute type and default values in <!ATTLIST...> declarations. Space is required between attribute name and type in <!ATTLIST...> declarations. Required whitespace is missing. Space is required between attribute type and default values in <!ATTLIST...> declarations. Space is required between NOTATION keyword and list of enumerated choices in <!ATTLIST...> declarations. Space is required before an NDATA entity annotation. XML comments may not contain "--" ENTITY can't reference itself directly or indirectly. Undefined ENTITY foo. Undefined ENTITY f. Internal general parsed entities are only well formed if they match the "content" production. ENTITY can't reference itself directly or indirectly. Undefined ENTITY foo. Undefined ENTITY bar. Undefined ENTITY foo. ENTITY can't reference itself directly or indirectly. ENTITY can't reference itself directly or indirectly. This tests the No External Entity References WFC, since the entity is referred to within an attribute. This tests the No External Entity References WFC, since the entity is referred to within an attribute. Undefined NOTATION n. Tests the Parsed Entity WFC by referring to an unparsed entity. (This precedes the error of not declaring that entity's notation, which may be detected any time before the DTD parsing is completed.) Public IDs may not contain "[". Public IDs may not contain "[". Public IDs may not contain "[". Attribute values are terminated by literal quote characters, and any entity expansion is done afterwards. Parameter entities "are" always parsed; NDATA annotations are not permitted. Attributes may not contain a literal "<" character; this one has one because of reference expansion. Parameter entities "are" always parsed; NDATA annotations are not permitted. The replacement text of this entity has an illegal reference, because the character reference is expanded immediately. Hexadecimal character references may not use the uppercase 'X'. Prolog VERSION must be lowercase. VersionInfo must come before EncodingDecl. Space is required before the standalone declaration. Both quotes surrounding VersionNum must be the same. Only one "version=..." string may appear in an XML declaration. Only three pseudo-attributes are in the XML declaration, and "valid=..." is not one of them. Only "yes" and "no" are permitted as values of "standalone". Space is not permitted in an encoding name. Provides an illegal XML version number; spaces are illegal. End-tag required for element foo. Internal general parsed entities are only well formed if they match the "content" production. Invalid placement of CDATA section. Invalid placement of entity declaration. Invalid document type declaration. CDATA alone is invalid. No space in '<![CDATA['. Tags invalid within EntityDecl. Entity reference must be in content of element. Entiry reference must be in content of element not Start-tag. CDATA sections start '<![CDATA[', not '<!cdata['. Parameter entity values must use valid reference syntax; this reference is malformed. General entity values must use valid reference syntax; this reference is malformed. The replacement text of this entity is an illegal character reference, which must be rejected when it is parsed in the context of an attribute value. Internal general parsed entities are only well formed if they match the "content" production. This is a partial character reference, not a full one. Internal general parsed entities are only well formed if they match the "content" production. This is a partial character reference, not a full one. Entity reference expansion is not recursive. Internal general parsed entities are only well formed if they match the "content" production. This is a partial character reference, not a full one. Character references are expanded in the replacement text of an internal entity, which is then parsed as usual. Accordingly, & must be doubly quoted - encoded either as &amp; or as &#38;#38;. A name of an ENTITY was started with an invalid character. Invalid syntax mixed connectors are used. Invalid syntax mismatched parenthesis. Invalid format of Mixed-content declaration. Invalid syntax extra set of parenthesis not necessary. Invalid syntax Mixed-content must be defined as zero or more. Invalid syntax Mixed-content must be defined as zero or more. Invalid CDATA syntax. Invalid syntax for Element Type Declaration. Invalid syntax for Element Type Declaration. Invalid syntax for Element Type Declaration. Invalid syntax mixed connectors used. Illegal whitespace before optional character causes syntax error. Illegal whitespace before optional character causes syntax error. Invalid character used as connector. Tag omission is invalid in XML. Space is required before a content model. Invalid syntax for content particle. The element-content model should not be empty. Character '&#x309a;' is a CombiningChar, not a Letter, and so may not begin a name. Character #x0E5C is not legal in XML names. Character #x0000 is not legal anywhere in an XML document. Character #x001F is not legal anywhere in an XML document. Character #xFFFF is not legal anywhere in an XML document. Character #xD800 is not legal anywhere in an XML document. (If it appeared in a UTF-16 surrogate pair, it'd represent half of a UCS-4 character and so wouldn't really be in the document.) Character references must also refer to legal XML characters; #x00110000 is one more than the largest legal character. XML Declaration may not be preceded by whitespace. XML Declaration may not be preceded by comments or whitespace. XML Declaration may not be within a DTD. XML declarations may not be within element content. XML declarations may not follow document content. XML declarations must include the "version=..." string. Text declarations may not begin internal parsed entities; they may only appear at the beginning of external parsed (parameter or general) entities. '<?XML ...?>' is neither an XML declaration nor a legal processing instruction target name. '<?xmL ...?>' is neither an XML declaration nor a legal processing instruction target name. '<?xMl ...?>' is neither an XML declaration nor a legal processing instruction target name. '<?xmL ...?>' is not a legal processing instruction target name. SGML-ism: "#NOTATION gif" can't have attributes. Uses '&' unquoted in an entity declaration, which is illegal syntax for an entity reference. Violates the PEs in Internal Subset WFC by using a PE reference within a declaration. Violates the PEs in Internal Subset WFC by using a PE reference within a declaration. Violates the PEs in Internal Subset WFC by using a PE reference within a declaration. Invalid placement of Parameter entity reference. Invalid placement of Parameter entity reference. Parameter entity declarations must have a space before the '%'. Character FFFF is not legal anywhere in an XML document. Character FFFE is not legal anywhere in an XML document. An unpaired surrogate (D800) is not legal anywhere in an XML document. An unpaired surrogate (DC00) is not legal anywhere in an XML document. Four byte UTF-8 encodings can encode UCS-4 characters which are beyond the range of legal XML characters (and can't be expressed in Unicode surrogate pairs). This document holds such a character. Character FFFF is not legal anywhere in an XML document. Character FFFF is not legal anywhere in an XML document. Character FFFF is not legal anywhere in an XML document. Character FFFF is not legal anywhere in an XML document. Character FFFF is not legal anywhere in an XML document. Start tags must have matching end tags. Character FFFF is not legal anywhere in an XML document. Invalid syntax matching double quote is missing. Invalid syntax matching double quote is missing. The Entity Declared WFC requires entities to be declared before they are used in an attribute list declaration. Internal parsed entities must match the content production to be well formed. Internal parsed entities must match the content production to be well formed. Mixed content declarations may not include content particles. In mixed content models, element names must not be parenthesized. Tests the Entity Declared WFC. Note: a nonvalidating parser is permitted not to report this WFC violation, since it would need to read an external parameter entity to distinguish it from a violation of the Standalone Declaration VC. Whitespace is required between attribute/value pairs. Conditional sections must be properly terminated ("]>" used instead of "]]>"). Processing instruction target names may not be "XML" in any combination of cases. Conditional sections must be properly terminated ("]]>" omitted). Conditional sections must be properly terminated ("]]>" omitted). Tests the Entity Declared VC by referring to an undefined parameter entity within an external entity. Conditional sections need a '[' after the INCLUDE or IGNORE. A <!DOCTYPE ...> declaration may not begin any external entity; it's only found once, in the document entity. In DTDs, the '%' character must be part of a parameter entity reference. This test violates WFC:PE Between Declarations in Production 28a. The last character of a markup declaration is not contained in the same parameter-entity text replacement. Tests the No Recursion WFC by having an external general entity be self-recursive. External entities have "text declarations", which do not permit the "standalone=..." attribute that's allowed in XML declarations. Only one text declaration is permitted; a second one looks like an illegal processing instruction (target names of "xml" in any case are not allowed). Tests the "Proper Group/PE Nesting" validity constraint by fragmenting a content model between two parameter entities. Tests the "Proper Declaration/PE Nesting" validity constraint by fragmenting an element declaration between two parameter entities. Tests the "Proper Declaration/PE Nesting" validity constraint by fragmenting an element declaration between two parameter entities. Test the "Proper Conditional Section/ PE Nesting" validity constraint. Test demonstrates an Element Type Declaration with Mixed Content. Test demonstrates that whitespace is permitted after the tag name in a Start-tag. Test demonstrates that whitespace is permitted after the tag name in an End-tag. Test demonstrates a valid attribute specification within a Start-tag. Test demonstrates a valid attribute specification within a Start-tag that contains whitespace on both sides of the equal sign. Test demonstrates that the AttValue within a Start-tag can use a single quote as a delimter. Test demonstrates numeric character references can be used for element content. Test demonstrates character references can be used for element content. Test demonstrates that PubidChar can be used for element content. Test demonstrates that whitespace is valid after the Attribute in a Start-tag. Test demonstrates mutliple Attibutes within the Start-tag. Uses a legal XML 1.0 name consisting of a single colon character (disallowed by the latest XML Namespaces draft). Test demonstrates that the Attribute in a Start-tag can consist of numerals along with special characters. Test demonstrates that all lower case letters are valid for the Attribute in a Start-tag. Test demonstrates that all upper case letters are valid for the Attribute in a Start-tag. Test demonstrates that Processing Instructions are valid element content. Test demonstrates that Processing Instructions are valid element content and there can be more than one. Test demonstrates that CDATA sections are valid element content. Test demonstrates that CDATA sections are valid element content and that ampersands may occur in their literal form. Test demonstractes that CDATA sections are valid element content and that everyting between the CDStart and CDEnd is recognized as character data not markup. Test demonstrates that comments are valid element content. Test demonstrates that comments are valid element content and that all characters before the double-hypen right angle combination are considered part of thecomment. Test demonstrates that Entity References are valid element content. Test demonstrates that Entity References are valid element content and also demonstrates a valid Entity Declaration. Test demonstrates an Element Type Declaration and that the contentspec can be of mixed content. Test demonstrates an Element Type Declaration and that EMPTY is a valid contentspec. Test demonstrates an Element Type Declaration and that ANY is a valid contenspec. Test demonstrates a valid prolog that uses double quotes as delimeters around the VersionNum. Test demonstrates a valid prolog that uses single quotes as delimters around the VersionNum. Test demonstrates a valid prolog that contains whitespace on both sides of the equal sign in the VersionInfo. Test demonstrates a valid EncodingDecl within the prolog. Test demonstrates a valid SDDecl within the prolog. Test demonstrates that both a EncodingDecl and SDDecl are valid within the prolog. Test demonstrates the correct syntax for an Empty element tag. Test demonstrates that whitespace is permissible after the name in an Empty element tag. Test demonstrates a valid processing instruction. Test demonstrates a valid comment and that it may appear anywhere in the document including at the end. Test demonstrates a valid comment and that it may appear anywhere in the document including the beginning. Test demonstrates a valid processing instruction and that it may appear at the beginning of the document. Test demonstrates an Attribute List declaration that uses a StringType as the AttType. Test demonstrates an Attribute List declaration that uses a StringType as the AttType and also expands the CDATA attribute with a character reference. Test demonstrates an Attribute List declaration that uses a StringType as the AttType and also expands the CDATA attribute with a character reference. The test also shows that the leading zeros in the character reference are ignored. An element's attributes may be declared before its content model; and attribute values may contain newlines. Test demonstrates that the empty-element tag must be use for an elements that are declared EMPTY. Tests whether more than one definition can be provided for the same attribute of a given element type with the first declaration being binding. Test demonstrates that when more than one AttlistDecl is provided for a given element type, the contents of all those provided are merged. Test demonstrates that extra whitespace is normalized into single space character. Test demonstrates that character data is valid element content. Test demonstrates that characters outside of normal ascii range can be used as element content. Test demonstrates that characters outside of normal ascii range can be used as element content. The document is encoded in UTF-16 and uses some name characters well outside of the normal ASCII range. The document is encoded in UTF-8 and the text inside the root element uses two non-ASCII characters, encoded in UTF-8 and each of which expands to a Unicode surrogate pair. Tests inclusion of a well-formed internal entity, which holds an element required by the content model. Test demonstrates that extra whitespace within Start-tags and End-tags are nomalized into single spaces. Test demonstrates that extra whitespace within a processing instruction willnormalized into s single space character. Test demonstrates an Attribute List declaration that uses a StringType as the AttType and also expands the CDATA attribute with a character reference. The test also shows that the leading zeros in the character reference are ignored. Test demonstrates an element content model whose element can occur zero or more times. Test demonstrates that extra whitespace be normalized into a single space character in an attribute of type NMTOKENS. Test demonstrates an Element Type Declaration that uses the contentspec of EMPTY. The element cannot have any contents and must always appear as an empty element in the document. The test also shows an Attribute-list declaration with multiple AttDef's. Test demonstrates the use of decimal Character References within element content. Test demonstrates the use of decimal Character References within element content. Test demonstrates the use of hexadecimal Character References within element. The document is encoded in UTF-8 and the name of the root element type uses non-ASCII characters. Tests in-line handling of two legal character references, which each expand to a Unicode surrogate pair. Tests ability to define an internal entity which can't legally be expanded (contains an unquoted <). Expands a CDATA attribute with a character reference. Test demonstrates the use of decimal character references within element content. Tests definition of an internal entity holding a carriage return character reference, which must not be normalized before reporting to the application. Line break normalization only occurs when parsing external parsed entities. Verifies that an XML parser will parse a NOTATION declaration; the output phase of this test ensures that it's reported to the application. Verifies that internal parameter entities are correctly expanded within the internal subset. Test demonstrates that an AttlistDecl can use ID as the TokenizedType within the Attribute type. The test also shows that IMPLIED is a valid DefaultDecl. Test demonstrates that an AttlistDecl can use IDREF as the TokenizedType within the Attribute type. The test also shows that IMPLIED is a valid DefaultDecl. Test demonstrates that an AttlistDecl can use IDREFS as the TokenizedType within the Attribute type. The test also shows that IMPLIED is a valid DefaultDecl. Test demonstrates that an AttlistDecl can use ENTITY as the TokenizedType within the Attribute type. The test also shows that IMPLIED is a valid DefaultDecl. Test demonstrates that an AttlistDecl can use ENTITIES as the TokenizedType within the Attribute type. The test also shows that IMPLIED is a valid DefaultDecl. Verifies that an XML parser will parse a NOTATION attribute; the output phase of this test ensures that both notations are reported to the application. Test demonstrates that an AttlistDecl can use an EnumeratedType within the Attribute type. The test also shows that IMPLIED is a valid DefaultDecl. Test demonstrates that an AttlistDecl can use an StringType of CDATA within the Attribute type. The test also shows that REQUIRED is a valid DefaultDecl. Test demonstrates that an AttlistDecl can use an StringType of CDATA within the Attribute type. The test also shows that FIXED is a valid DefaultDecl and that a value can be given to the attribute in the Start-tag as well as the AttListDecl. Test demonstrates that an AttlistDecl can use an StringType of CDATA within the Attribute type. The test also shows that FIXED is a valid DefaultDecl and that an value can be given to the attribute. Test demonstrates the use of the optional character following a name or list to govern the number of times an element or content particles in the list occur. Tests that an external PE may be defined (but not referenced). Tests that an external PE may be defined (but not referenced). Test demonstrates that although whitespace can be used to set apart markup for greater readability it is not necessary. Parameter and General entities use different namespaces, so there can be an entity of each type with a given name. Tests whether entities may be declared more than once, with the first declaration being the binding one. Tests whether character references in internal entities are expanded early enough, by relying on correct handling to make the entity be well formed. Tests whether entity references in internal entities are expanded late enough, by relying on correct handling to make the expanded text be valid. (If it's expanded too early, the entity will parse as an element that's not valid in that context.) Tests entity expansion of three legal character references, which each expand to a Unicode surrogate pair. Verifies that an XML parser will parse a NOTATION attribute; the output phase of this test ensures that the notation is reported to the application. Verifies that an XML parser will parse an ENTITY attribute; the output phase of this test ensures that the notation is reported to the application, and for validating parsers it further tests that the entity is so reported. Test demostrates that extra whitespace is normalized into a single space character. Test demonstrates that extra whitespace is not intended for inclusion in the delivered version of the document. Attribute defaults with a DTD have special parsing rules, different from other strings. That means that characters found there may look like an undefined parameter entity reference "within a markup declaration", but they aren't ... so they can't be violating the PEs in Internal Subset WFC. Basically an output test, this requires extra whitespace to be normalized into a single space character in an attribute of type NMTOKENS. Test demonstrates that extra whitespace is normalized into a single space character in an attribute of type NMTOKENS. Basically an output test, this tests whether an externally defined attribute declaration (with a default) takes proper precedence over a subsequent internal declaration. Test demonstrates that extra whitespace within a processing instruction is converted into a single space character. Test demonstrates the name of the encoding can be composed of lowercase characters. Makes sure that PUBLIC identifiers may have some strange characters. NOTE: The XML editors have said that the XML specification errata will specify that parameter entity expansion does not occur in PUBLIC identifiers, so that the '%' character will not flag a malformed parameter entity reference. This tests whether entity expansion is (incorrectly) done while processing entity declarations; if it is, the entity value literal will terminate prematurely. Test demonstrates that a CDATA attribute can pass a double quote as its value. Test demonstrates that an attribute can pass a less than sign as its value. Test demonstrates that extra whitespace within an Attribute of a Start-tag is normalized to a single space character. Basically an output test, this requires a CDATA attribute with a tab character to be passed through as one space. Basically an output test, this requires a CDATA attribute with a newline character to be passed through as one space. Basically an output test, this requires a CDATA attribute with a return character to be passed through as one space. This tests normalization of end-of-line characters (CRLF) within entities to LF, primarily as an output test. Test demonstrates that an attribute can have a null value. Basically an output test, this requires that a CDATA attribute with a CRLF be normalized to one space. Character references expanding to spaces doesn't affect treatment of attributes. Test demonstrates shows the use of content particles within the element content. Test demonstrates that it is not an error to have attributes declared for an element not itself declared. Test demonstrates that all text within a valid CDATA section is considered text and not recognized as markup. Test demonstrates that an entity reference is processed by recursively processing the replacement text of the entity. Test demonstrates that a line break within CDATA will be normalized. Test demonstrates that entity expansion is done while processing entity declarations. Test demonstrates that entity expansion is done while processing entity declarations. Comments may contain any legal XML characters; only the string "--" is disallowed. Test demonstrates the use of an ExternalID within a document type definition. Test demonstrates the use of an ExternalID within a document type definition. Test demonstrates the expansion of an external parameter entity that declares an attribute. Expands an external parameter entity in two different ways, with one of them declaring an attribute. Test demonstrates the expansion of an external parameter entity that declares an attribute. Test demonstrates that when more than one definition is provided for the same attribute of a given element type only the first declaration is binding. Test demonstrates the use of an Attribute list declaration within an external entity. Test demonstrates that an external identifier may include a public identifier. Test demonstrates that an external identifier may include a public identifier. Test demonstrates that when more that one definition is provided for the same attribute of a given element type only the first declaration is binding. Test demonstrates a parameter entity declaration whose parameter entity definition is an ExternalID. Test demonstrates an enternal parsed entity that begins with a text declaration. Test demonstrates the use of the conditional section INCLUDE that will include its contents as part of the DTD. Test demonstrates the use of the conditional section INCLUDE that will include its contents as part of the DTD. The keyword is a parameter-entity reference. Test demonstrates the use of the conditonal section IGNORE the will ignore its content from being part of the DTD. The keyword is a parameter-entity reference. Test demonstrates the use of the conditional section INCLUDE that will include its contents as part of the DTD. The keyword is a parameter-entity reference. Test demonstrates a parameter entity declaration that contains an attribute list declaration. Test demonstrates an EnternalID whose contents contain an parameter entity declaration and a attribute list definition. Test demonstrates that a parameter entity will be expanded with spaces on either side. Parameter entities expand with spaces on either side. Test demonstrates a parameter entity declaration that contains a partial attribute list declaration. Test demonstrates the use of a parameter entity reference within an attribute list declaration. Constructs an <!ATTLIST...> declaration from several PEs. Test demonstrates that when more that one definition is provided for the same entity only the first declaration is binding. Test demonstrates that when more that one definition is provided for the same attribute of a given element type only the first declaration is binding. Test demonstrates a parameter entity reference whose value is NULL. Test demonstrates the use of the conditional section INCLUDE that will include its contents. Test demonstrates the use of the conditonal section IGNORE the will ignore its content from being used. Test demonstrates the use of the conditonal section IGNORE the will ignore its content from being used. Expands a general entity which contains a CDATA section with what looks like a markup declaration (but is just text since it's in a CDATA section). A combination of carriage return line feed in an external entity must be normalized to a single newline. A carriage return (also CRLF) in an external entity must be normalized to a single newline. Test demonstrates that the content of an element can be empty. In this case the external entity is an empty file. A carriage return (also CRLF) in an external entity must be normalized to a single newline. Test demonstrates the use of optional character and content particles within an element content. The test also show the use of external entity. Test demonstrates the use of optional character and content particles within mixed element content. The test also shows the use of an external entity and that a carriage control line feed in an external entity must be normalized to a single newline. Test demonstrates the use of external entity and how replacement text is retrieved and processed. Test demonstrates the use of external entity and how replacement text is retrieved and processed. Also tests the use of an EncodingDecl of UTF-16. A carriage return (also CRLF) in an external entity must be normalized to a single newline. Test demonstrates the use of a public identifier with and external entity. The test also show that a carriage control line feed combination in an external entity must be normalized to a single newline. Test demonstrates both internal and external entities and that processing of entity references may be required to produce the correct replacement text. Test demonstrates that whitespace is handled by adding a single whitespace to the normalized value in the attribute list. Test demonstrates use of characters outside of normal ASCII range.