Like sa03 but relies on attribute defaulting defined in the internal subset. On output, requires notations to be correctly reported.
<?xml version='1.0' standalone='yes'?> <!DOCTYPE attributes SYSTEM "sa.dtd" [ <!-- This one is standalone since the values are pre-normalized in this document, except that one defaulted attribute is (re)defined internally and so is one normalized one. Similarly the entity refs are internal. Unparsed entities and notations are not listed among the items that must not be externally declared in standalone documents, even though processors must in theory report their identifiers. --> <!ATTLIST attributes token (a|b|c) "a" notation (nonce|foo|bar) #IMPLIED > <!ENTITY internal "internal&number;"> <!ENTITY number "42"> ]> <attributes notation = " nonce " nmtoken = "this-gets-normalized" nmtokens = "this also gets normalized" id = "&internal;" idref = "&internal;" idrefs = "&internal; &internal; &internal;" entity = "unparsed-1" entities = "unparsed-1 unparsed-2" cdata = "nothing happens to this one!" /> <?pi equals three?>
Expected result | Actual result for org.apache.crimson.parser.XMLReaderImpl |
---|---|
<?xml version="1.0" encoding="UTF-8"?> <ConformanceResults> <startDocument/> <resolveEntity> <systemID>file:/home/elharo/SAXTest/xmlconf/sun/valid/sa.dtd</systemID> </resolveEntity> <notation> <name>bar</name> <systemID>file:/dev/tty</systemID> </notation> <notation> <name>foo</name> <publicID>-//public id//foo</publicID> <systemID>file:/dev/null</systemID> </notation> <notation> <name>nonce</name> <systemID>file:/dev/null</systemID> </notation> <unparsedEntity> <name>unparsed-1</name> <publicID>-//some public//ID</publicID> <systemID>file:/dev/console</systemID> <notation>nonce</notation> </unparsedEntity> <unparsedEntity> <name>unparsed-2</name> <systemID>scheme://host/data</systemID> <notation>foo</notation> </unparsedEntity> <startElement> <namespaceURI/> <localName>attributes</localName> <qualifiedName>attributes</qualifiedName> <attributes> <attribute> <namespaceURI/> <localName>cdata</localName> <qualifiedName>cdata</qualifiedName> <value>nothing\shappens\sto\sthis\sone!</value> <type>CDATA</type> </attribute> <attribute> <namespaceURI/> <localName>entities</localName> <qualifiedName>entities</qualifiedName> <value>unparsed-1\sunparsed-2</value> <type>ENTITIES</type> </attribute> <attribute> <namespaceURI/> <localName>entity</localName> <qualifiedName>entity</qualifiedName> <value>unparsed-1</value> <type>ENTITY</type> </attribute> <attribute> <namespaceURI/> <localName>id</localName> <qualifiedName>id</qualifiedName> <value>internal42</value> <type>ID</type> </attribute> <attribute> <namespaceURI/> <localName>idref</localName> <qualifiedName>idref</qualifiedName> <value>internal42</value> <type>IDREF</type> </attribute> <attribute> <namespaceURI/> <localName>idrefs</localName> <qualifiedName>idrefs</qualifiedName> <value>internal42\sinternal42\sinternal42</value> <type>IDREFS</type> </attribute> <attribute> <namespaceURI/> <localName>nmtoken</localName> <qualifiedName>nmtoken</qualifiedName> <value>this-gets-normalized</value> <type>NMTOKEN</type> </attribute> <attribute> <namespaceURI/> <localName>nmtokens</localName> <qualifiedName>nmtokens</qualifiedName> <value>this\salso\sgets\snormalized</value> <type>NMTOKENS</type> </attribute> <attribute> <namespaceURI/> <localName>notation</localName> <qualifiedName>notation</qualifiedName> <value>nonce</value> <type>NMTOKEN</type> </attribute> <attribute> <namespaceURI/> <localName>token</localName> <qualifiedName>token</qualifiedName> <value>a</value> <type>NMTOKEN</type> </attribute> </attributes> </startElement> <endElement> <namespaceURI/> <localName>attributes</localName> <qualifiedName>attributes</qualifiedName> </endElement> <processingInstruction> <target>pi</target> <data>equals\sthree</data> </processingInstruction> <endDocument/> </ConformanceResults> | <?xml version="1.0" encoding="UTF-8"?> <ConformanceResults> <startDocument/> <resolveEntity> <systemID>file:/home/elharo/SAXTest/xmlconf/sun/valid/sa.dtd</systemID> </resolveEntity> <notation> <name>bar</name> <systemID>file:/dev/tty</systemID> </notation> <notation> <name>foo</name> <publicID>-//public id//foo</publicID> <systemID>file:/dev/null</systemID> </notation> <notation> <name>nonce</name> <systemID>file:/dev/null</systemID> </notation> <unparsedEntity> <name>unparsed-1</name> <publicID>-//some public//ID</publicID> <systemID>file:/dev/console</systemID> <notation>nonce</notation> </unparsedEntity> <unparsedEntity> <name>unparsed-2</name> <systemID>scheme://host/data</systemID> <notation>foo</notation> </unparsedEntity> <startElement> <namespaceURI/> <localName>attributes</localName> <qualifiedName>attributes</qualifiedName> <attributes> <attribute> <namespaceURI/> <localName>cdata</localName> <qualifiedName>cdata</qualifiedName> <value>nothing\shappens\sto\sthis\sone!</value> <type>CDATA</type> </attribute> <attribute> <namespaceURI/> <localName>entities</localName> <qualifiedName>entities</qualifiedName> <value>unparsed-1\sunparsed-2</value> <type>ENTITIES</type> </attribute> <attribute> <namespaceURI/> <localName>entity</localName> <qualifiedName>entity</qualifiedName> <value>unparsed-1</value> <type>ENTITY</type> </attribute> <attribute> <namespaceURI/> <localName>id</localName> <qualifiedName>id</qualifiedName> <value>internal42</value> <type>ID</type> </attribute> <attribute> <namespaceURI/> <localName>idref</localName> <qualifiedName>idref</qualifiedName> <value>internal42</value> <type>IDREF</type> </attribute> <attribute> <namespaceURI/> <localName>idrefs</localName> <qualifiedName>idrefs</qualifiedName> <value>internal42\sinternal42\sinternal42</value> <type>IDREFS</type> </attribute> <attribute> <namespaceURI/> <localName>nmtoken</localName> <qualifiedName>nmtoken</qualifiedName> <value>this-gets-normalized</value> <type>NMTOKEN</type> </attribute> <attribute> <namespaceURI/> <localName>nmtokens</localName> <qualifiedName>nmtokens</qualifiedName> <value>this\salso\sgets\snormalized</value> <type>NMTOKENS</type> </attribute> <attribute> <namespaceURI/> <localName>notation</localName> <qualifiedName>notation</qualifiedName> <value>nonce</value> <type>ENUMERATION</type> </attribute> <attribute> <namespaceURI/> <localName>token</localName> <qualifiedName>token</qualifiedName> <value>a</value> <type>ENUMERATION</type> </attribute> </attributes> </startElement> <endElement> <namespaceURI/> <localName>attributes</localName> <qualifiedName>attributes</qualifiedName> </endElement> <processingInstruction> <target>pi</target> <data>equals\sthree</data> </processingInstruction> <endDocument/> </ConformanceResults> |