Closed vaibhav-bansal closed 7 years ago
Exalt uses lxml, which in turn uses libxml2.
xmllint
(which is the command-line interface to libxml2), gives the same result for your example document:
/p/tmp $ cat test.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE name [
<!ELEMENT name (fname,lname)>
<!ELEMENT fname (#PCDATA)>
<!ELEMENT lname (CDATA)>
]>
<name>
<fname>Vaibhav</fname>
<lname>Bansal</lname>
</name>
/p/tmp $ xmllint --valid test.xml
test.xml:11: element lname: validity error : Element lname content does not follow the DTD, expecting (CDATA), got (CDATA)
<lname>Bansal</lname>
^
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE name [
<!ELEMENT name (fname , lname)>
<!ELEMENT fname (#PCDATA)>
<!ELEMENT lname (CDATA)>
]>
<name>
<fname>Vaibhav</fname>
<lname>Bansal</lname>
</name>
/p/tmp $
I'm by no means an expert on DTDs, but this Stack Overflow answer indicates that CDATA
is not a valid content model for elements.
1. Summary
Shows error for CDATA entries but works with #PCDATA
2. Expected Behavior
Should notify "Valid markup".
3. Actual Behavior
Error : "Element lname content does not follow the DTD, expecting (CDATA), got (CDATA)"
4. Code Used
5. Environment
Operating System: Windows 8.1 x64 EN
Sublime Text: Build 3126
Thanks.