Bir XML ayrıştırmak için Python'daki bir .xsd dosyasını ayrıştırmam gerekiyor.
libxml2 kullanıyorum. i yolu bulamıyor söylüyorpython'da .xsd ayrıştırma
doc.xpathEval('//xs:complexType/xs:sequence/xs:element[@name="IeplcHeader"]'):
ile eriştiklerinde
<xs:complexType name="ClassType">
<xs:sequence>
<xs:element name="IeplcHeader">
<xs:complexType>
<xs:sequence>
<xs:element name="device-number" type="xs:integer" fixed="1"/>
</xs:sequence>
<xs:attribute name="version" type="xs:integer" use="required" fixed="0"/>
</xs:complexType>
</xs:element>
:
Ben aşağıdaki gibi bakmak bir xsd ayrıştırmak gerekiyor.
i tüm xs kaldırırsanız ise: gibi
doc.xpathEval('//complexType/sequence/element[@name="IeplcHeader"]'):
çalışır bu şekilde
<complexType name="ClassType">
<sequence>
<element name="IeplcHeader">
<complexType>
<sequence>
<element name="device-number" type="xs:integer" fixed="1"/>
</sequence>
<attribute name="version" type="xs:integer" use="required" fixed="0"/>
</complexType>
</element>
izleyin kimse ben bir önek sabitleme bu sorunun okumak alabilirsiniz bilen var mı? righ şimdi xs kaldırarak dosyayı hazırlıyorum: ama bu bir asabi çözüm ve gerçekten daha iyi bir çözüm bulabilmek için umuyoruz.
(eğer xsd dosyaları ile uğraşmak zorunda ise ste
güzel kütüphanesi. ama ihtiyacım olanı yaptığından emin değilim. Doğrulama için çok iyi ... ama şu anda XSD içindeki bazı verilere erişmem gerekiyor ... garip geliyor ama xsd'den bazı verileri OKMAK olan bir script yazıyorum ...;) I Bu noktada doğrulama için kullanmıyorum .. :) – Stefano
@Stefano: 'lxm' yalnızca doğrulama için değil, aynı zamanda' xpath' kullanarak da iyi değildir. Üzerinde test yapmak için tam (soyulmuş) bir xsd dosyası göndermek yardımcı olur – neurino