синтаксический анализ .xsd в python

Мне нужно проанализировать файл .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, и я не знаю, может работать даже с хз :)

спасибо, ste

5
задан lavinio 21 July 2011 в 13:10
поделиться