Necesito analizar un archivo .xsd en Python como analizaría un XML.
Estoy usando libxml2.
que tienen que analizar un xsd que se ven de la siguiente manera:
analizando .xsd en python
<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>
cuando accedo con
doc.xpathEval('//xs:complexType/xs:sequence/xs:element[@name="IeplcHeader"]'):
me dice que no puede encontrar la ruta.
mientras que si puedo eliminar todos los xs: como siguen
<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>
de esta manera funciona
doc.xpathEval('//complexType/sequence/element[@name="IeplcHeader"]'):
¿Alguien sabe cómo puedo obtener lectura de este problema fijando un prefijo? Ahora estoy preparando el archivo eliminando el xs: pero es una solución viable y realmente espero poder encontrar una mejor solución.
(No probé con py-dom-XPath todavía y no sé si puede trabajar incluso con las x :)
gracias, ste
buena biblioteca. pero no estoy seguro de que haga lo que necesito. Es muy bueno para la validación ... pero en este momento solo necesito acceder a algunos datos dentro del XSD ... suena extraño pero estoy escribiendo un script que tiene que LEER algunos datos de un xsd ...;) I ma no lo usa para validación en este punto ... :) – Stefano
@Stefano: 'lxm' no solo sirve para validar sino también para' xpath'. Publicar un archivo xsd completo (desmantelado) para realizar pruebas ayudaría – neurino