解释 2 是正确的。示范:
DTD(固定.dtd)
<!ELEMENT root ANY>
<!ELEMENT book ANY>
<!ATTLIST book id ID #IMPLIED
genre CDATA #FIXED "fantasy">
<!ELEMENT magazine ANY>
<!ATTLIST magazine id ID #IMPLIED>
XML 1
<!DOCTYPE root SYSTEM "fixed.dtd">
<root>
<book id="ID01" genre="fantasy"/>
<magazine id="ID02" />
</root>
xmllint 输出:
$ xmllint --postvalid fixed.xml
<?xml version="1.0"?>
<!DOCTYPE root SYSTEM "fixed.dtd">
<root>
<book id="ID01" genre="fantasy"/>
<magazine id="ID02"/>
</root>
XML 2
<!DOCTYPE root SYSTEM "fixed.dtd">
<root>
<book id="ID01"/>
<magazine id="ID02" />
</root>
xmllint 输出:
$ xmllint --postvalid fixed.xml
<?xml version="1.0"?>
<!DOCTYPE root SYSTEM "fixed.dtd">
<root>
<book id="ID01"/>
<magazine id="ID02"/>
</root>
XML 3
<!DOCTYPE root SYSTEM "fixed.dtd">
<root>
<book id="ID01" genre="crime"/>
<magazine id="ID02" />
</root>
xmllint 输出:
$ xmllint --postvalid fixed.xml
<?xml version="1.0"?>
<!DOCTYPE root SYSTEM "fixed.dtd">
<root>
<book id="ID01" genre="crime"/>
<magazine id="ID02"/>
</root>
fixed.xml:3: element book: validity error : Value for attribute genre of book is different from default "fantasy"
fixed.xml:3: element book: validity error : Value for attribute genre of book must be "fantasy"
Document fixed.xml does not validate