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.
<!DOCTYPE doc [ <!ELEMENT doc (#PCDATA|a|b|c|d)*> <!ELEMENT a EMPTY> <!ELEMENT b EMPTY> <!ELEMENT c EMPTY> <!ELEMENT d EMPTY> <!ATTLIST a> <!ATTLIST b > <!ATTLIST c att CDATA #IMPLIED> <!ATTLIST d att CDATA #IMPLIED> <!ATTLIST c att CDATA #IMPLIED att2 CDATA "second declaration is OK" att2 CDATA #REQUIRED > <!ATTLIST d> ]> <doc><c/><c att2="test"/></doc>
| Expected result | Actual result for net.sf.saxon.aelfred.SAXDriver |
|---|---|
<?xml version="1.0" encoding="UTF-8"?>
<ConformanceResults>
<startDocument/>
<startElement>
<namespaceURI/>
<localName>doc</localName>
<qualifiedName>doc</qualifiedName>
<attributes/>
</startElement>
<startElement>
<namespaceURI/>
<localName>c</localName>
<qualifiedName>c</qualifiedName>
<attributes>
<attribute>
<namespaceURI/>
<localName>att2</localName>
<qualifiedName>att2</qualifiedName>
<value>second\sdeclaration\sis\sOK</value>
<type>CDATA</type>
</attribute>
</attributes>
</startElement>
<endElement>
<namespaceURI/>
<localName>c</localName>
<qualifiedName>c</qualifiedName>
</endElement>
<startElement>
<namespaceURI/>
<localName>c</localName>
<qualifiedName>c</qualifiedName>
<attributes>
<attribute>
<namespaceURI/>
<localName>att2</localName>
<qualifiedName>att2</qualifiedName>
<value>test</value>
<type>CDATA</type>
</attribute>
</attributes>
</startElement>
<endElement>
<namespaceURI/>
<localName>c</localName>
<qualifiedName>c</qualifiedName>
</endElement>
<endElement>
<namespaceURI/>
<localName>doc</localName>
<qualifiedName>doc</qualifiedName>
</endElement>
<endDocument/>
</ConformanceResults>
| <?xml version="1.0" encoding="UTF-8"?>
<ConformanceResults>
<startDocument/>
<resolveEntity>
<systemID>file:/home/elharo/SAXTest/xmlconf/oasis/p52pass1.xml</systemID>
</resolveEntity>
<startElement>
<namespaceURI/>
<localName>doc</localName>
<qualifiedName>doc</qualifiedName>
<attributes/>
</startElement>
<startElement>
<namespaceURI/>
<localName>c</localName>
<qualifiedName>c</qualifiedName>
<attributes>
<attribute>
<namespaceURI/>
<localName>att2</localName>
<qualifiedName>att2</qualifiedName>
<value>second\sdeclaration\sis\sOK</value>
<type>CDATA</type>
</attribute>
</attributes>
</startElement>
<endElement>
<namespaceURI/>
<localName>c</localName>
<qualifiedName>c</qualifiedName>
</endElement>
<startElement>
<namespaceURI/>
<localName>c</localName>
<qualifiedName>c</qualifiedName>
<attributes>
<attribute>
<namespaceURI/>
<localName>att2</localName>
<qualifiedName>att2</qualifiedName>
<value>test</value>
<type>CDATA</type>
</attribute>
</attributes>
</startElement>
<endElement>
<namespaceURI/>
<localName>c</localName>
<qualifiedName>c</qualifiedName>
</endElement>
<endElement>
<namespaceURI/>
<localName>doc</localName>
<qualifiedName>doc</qualifiedName>
</endElement>
<endDocument/>
</ConformanceResults>
|