Merhaba, İşte Ben Ubuntu Python 2.6 kullanılarak 9.10 denedi, Amara2 (bu arada, Test.xsd aracını xml2xsd kullanılarak oluşturuldu) nedir:
[email protected]:~$ cat test.xml; echo =====o=====; cat test.xsd; echo ====
o=====; cat test.py; echo =====o=====; ./test.py; echo =====o=====
<?xml version="1.0" encoding="utf-8"?>==; ./test.py` >
test.txttest.xsd; echo ===
<test>abcde</test>
=====o=====
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="test" type="xs:NCName"/>
</xs:schema>
=====o=====
#!/usr/bin/python2.6
# I wish to validate an xml file against an external XSD schema.
from amara import bindery, parse
source = 'test.xml'
schema = 'test.xsd'
#help(bindery.parse)
#doc = bindery.parse(source, uri=schema, validate=True) # These 2 seem
to fail in the same way.
doc = parse(source, uri=schema, validate=True) # So, what is the
difference anyway?
#
=====o=====
Traceback (most recent call last):
File "./test.py", line 14, in <module>
doc = parse(source, uri=schema, validate=True)
File "/usr/local/lib/python2.6/dist-packages/Amara-2.0a4-py2.6-linux-
x86_64.egg/amara/tree.py", line 50, in parse
return _parse(inputsource(obj, uri), flags,
entity_factory=entity_factory)
amara.ReaderError: In file:///home/g/test.xml, line 2, column 0:
Missing document type declaration
[email protected]:~$
=====o=====
Peki, neden bu hatayı görüyorum? Bu işlev desteklenmiyor mu? Herhangi bir XSD dosyasına işaret etmek için esnekliğini kullanırken bir XML dosyasını bir XSD'ye karşı nasıl doğrulayabilirim? Teşekkürler ve sorularınız varsa lütfen bize bildirin.
Amara Kitaplığı'nı kullanarak eğildiniz mi? –
@movieyoda, hayır, başka bir iyi bir Python xml kitaplığına atlayabilirim. Bununla birlikte, benim mevcut 'amara 'kodumu ona göndermem gerekecek ve bunun için ağrısız bir çözüm bulmayı umuyorum. –