このスキーマに準拠した入力ファイルを読み取るための 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 の名前空間が何らかの形で混同され、循環参照が作成されているようです。
ここで何かアドバイスはありますか?