Мне нужно проанализировать файл .xsd в Python, как я бы проанализировал XML.
Я использую libxml2.
Я должен разобрать xsd, который выглядит следующим образом:
<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>
когда я получаю доступ с
doc.xpathEval('//xs:complexType/xs:sequence/xs:element[@name="IeplcHeader"]'):
говорит мне, что не может найти путь.
в то время как если я удалю все xs: как следует
<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>
таким образом это работает
doc.xpathEval('//complexType/sequence/element[@name="IeplcHeader"]'):
Кто-нибудь знает, как я могу прочитать об этой проблеме, исправляя префикс? сейчас я готовлю файл, удаляя xs: но это ужасное решение, и я действительно надеюсь найти лучшее решение.
(я еще не пробовал с py-dom-xpath и не знаю, может ли он работать даже с xs:)
спасибо,
Ste