4

このスキーマに準拠した入力ファイルを読み取るための Python XML バインディングに興味があります: http://ddex.net/xml/ern/341/release-notification.xsd

ただし、この XSD は他の多くのものに依存していますが、最も重要なのは http://ddex.net/xml/20120404/ddexC.xsdおよび http://ddex.net/xml/20120404/ddex.xsdです。

私の最初の試みはgenerateDSを使用することです。--no-process-includes を次のように使用すると、release-notification.xsd のバインドを正常に生成できます。

./generateDS.py --no-process-includes -o release-notification.py release-notification.xsd

ただし、これにより、ほとんどの ComplexTypes がddexC.xsdで定義されているため、ほとんど役に立たない Python オブジェクトが残ります。

--no-process-includes なしで試してみると、次のようになります。

RuntimeError: Extension/restriction recursion detected.
Suggest you check definitions of types ArtistRole and ArtistRole.

参照される定義は次のとおりです。

<xs:element name="ArtistRole" maxOccurs="unbounded" type="ddexC:ArtistRole">
....
<xs:complexType name="ArtistRole">
      <xs:simpleContent>
         <xs:extension base="ddex:ArtistRole">
....

そのため、ddex と ddexC の名前空間が何らかの形で混同され、循環参照が作成されているようです。

ここで何かアドバイスはありますか?

4

2 に答える 2

1

http://ddex.net/xml/にある完全な ERN スキーマに対して検証される完全な python オブジェクトを生成するために使用できる ddex lint スクリプトがあるhttps://github.com/ddexnetをチェックアウトすることをお勧めします。 2010/エルン-メイン/32 .

(リンターは内部で ddexC 名前空間も利用します)。

于 2013-09-20T06:22:23.417 に答える