homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Spider06
Recipients Spider06
Date 2014年10月28日.09:56:59
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1414490220.27.0.963002484178.issue22750@psf.upfronthosting.co.za>
In-reply-to
Content
Code is working, but the TEXT variable is not showing the correct line of the XML file but the the line after correct one :
Exemple :
[u6v7mr@vl-a-txx-05 Python]$ ./validateXML.py DTD/herve.xml DTD/Tomcat.dtd
ERROR: 'I' is not an allowed value for the 'value' attribute at DTD/herve.xml:3:19
TEXT: '
 <tomcat'
XML file is KO
[u6v7mr@vl-a-txx-05 Python]$
The line expected is : <env value="I"/>
The corresponding line in the DTD file is this one :
<!ATTLIST env
 value (D|F|R|P|Q|A) #REQUIRED
>
Here is the python's content :
[u6v7mr@vl-a-txx-05 Python]$ cat validateXML.py
#!/usr/bin/python
from xml.parsers.xmlproc import xmlproc
from xml.parsers.xmlproc import xmlval
from xml.parsers.xmlproc import xmldtd
def validate_xml(xml_filename, dtd_filename):
 """Validate a given XML file with a given external DTD.
 If the XML file is not valid, an exception will be
 printed with an error message."""
 dtd = xmldtd.load_dtd(dtd_filename)
 parser = xmlproc.XMLProcessor()
 parser.set_application(xmlval.ValidatingApp(dtd, parser))
 parser.dtd = dtd
 parser.ent = dtd
 try :
 parser.parse_resource(xml_filename)
 except :
 print "XML file is KO"
 return 0
 print "XML file is OK"
if __name__ == "__main__":
 import sys
 xml_filename, dtd_filename = sys.argv[1], sys.argv[2]
 validate_xml(xml_filename, dtd_filename)
[u6v7mr@vl-a-txx-05 Python]$
Here is the XML file with the error for the element env :
[u6v7mr@vl-a-txx-05 Python]$ cat DTD/herve.xml
<?xml version='1.0' encoding='utf-8'?>
<config>
 <env value="I"/>
 <tomcat count="1" start="1" step="1" adresseIP="10.108.250.72" offset="10" name="HERVE_R_NM_GEN" shutdown_port="40010" >
 <jvm>
 <memory verbosegc="true" logrotategc="true" min="512" max="1024"> </memory>
 <permgen max="128" min="128"> </permgen>
 </jvm>
 </tomcat>
 <tomcat count="1" start="2" step="1" adresseIP="10.108.250.72" offset="20" name="HERVE_R_NM_GEN" shutdown_port="40010" >
 <jvm>
 <memory verbosegc="true" logrotategc="true" min="512" max="1024"> </memory>
 <permgen max="128" min="128"> </permgen>
 </jvm>
 </tomcat>
</config>
[u6v7mr@vl-a-txx-05 Python]$
Here is the stdout expected :
[u6v7mr@vl-a-txx-05 Python]$ ./validateXML.py DTD/herve.xml DTD/Tomcat.dtd
ERROR: 'I' is not an allowed value for the 'value' attribute at DTD/herve.xml:3:19
TEXT: '
<env value="I"/>'
XML file is KO
History
Date User Action Args
2014年10月28日 09:57:00Spider06setrecipients: + Spider06
2014年10月28日 09:57:00Spider06setmessageid: <1414490220.27.0.963002484178.issue22750@psf.upfronthosting.co.za>
2014年10月28日 09:57:00Spider06linkissue22750 messages
2014年10月28日 09:56:59Spider06create

AltStyle によって変換されたページ (->オリジナル) /