End-to-end-Beispiel mit PyXB. Aus einem XSD-schema zu einem XML-Dokument

Ich habe eine harte Zeit, erste Schritte mit PyXB.

Sagen, ich habe eine XSD-Datei (ein XML schema). Ich möchte:

  1. Verwenden PyXB zu definieren Python-Objekte nach dem schema.
  2. Speichern Sie diese Objekte auf der Festplatte als XML-Dateien erfüllen die schema.

Wie kann ich das mit PyXB? Unten ist eine einfaches Beispiel einer XSD-Datei (aus Wikipedia) kodiert, dass eine Adresse, aber ich habe eine harte Zeit, selbst erste Schritte.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Address">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="FullName" type="xs:string" />
        <xs:element name="House" type="xs:string" />
        <xs:element name="Street" type="xs:string" />
        <xs:element name="Town" type="xs:string" />
        <xs:element name="County" type="xs:string" minOccurs="0" />
        <xs:element name="PostCode" type="xs:string" />
        <xs:element name="Country" minOccurs="0">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:enumeration value="IN" />
              <xs:enumeration value="DE" />
              <xs:enumeration value="ES" />
              <xs:enumeration value="UK" />
              <xs:enumeration value="US" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Update

Sobald ich laufen

pyxbgen -u example.xsd -m example

Bekomme ich eine example.py hat die folgenden Klassen:

example.Address             example.STD_ANON
example.CTD_ANON            example.StringIO
example.CreateFromDOM       example.pyxb
example.CreateFromDocument  example.sys
example.Namespace           

Ich glaube, ich verstehe, was CreateFromDocument tut es vermutlich liest eine XML aus und erstellt das entsprechende python Objekt-, aber welche Klasse verwende ich ein neues Objekt zu erstellen und dann speichern Sie es in einem XML -?

Ich bin mit ihm zu kämpfen zu, die Dokumentation ist absoluter Mist. Ein riesiges Diagramm und vollständige Erklärung von dem, was namespaces sind nicht hilfreich ist, wenn Sie nur wollen, um den Zugriff auf ein element und es gibt kein Beispiel, das Ihnen sagt, wie es zu tun mit namespaces.

InformationsquelleAutor Amelio Vazquez-Reina | 2013-06-25

Schreibe einen Kommentar