2012-11-06 3 views
4

바인딩 DDEX의 XML에 대한 GenerateDS를 사용하는 방법이 XSD 비록 다른 사람의 수에 따라 달라집니다 http://ddex.net/xml/ern/341/release-notification.xsd제대로 나는이 스키마를 따르는 입력 파일을 읽기 위해 바인딩 파이썬 XML에 관심이

, 가장 중요한을 : http://ddex.net/xml/20120404/ddexC.xsdhttp://ddex.net/xml/20120404/ddex.xsd

첫 번째 시도는 generateDS입니다.

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

그러나, 이것은 복합 유형의 대부분 때문에 대부분 쓸모가 파이썬 객체로 날 나뭇잎 : 내가 사용하는 경우 내가 함께 --no-프로세스가-포함 성공적으로 출시-notification.xsd 바인딩을 생성 할 수 있어요 ddexC.xsd에 정의됩니다. 내가-포함 --no-과정없이하려고하면

, 내가 얻을 :

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 것 같아 어떻게 든 네임 스페이스가 섞여 순환 참조가 만들어집니다.

여기에 어떤 조언이 있습니까?

답변

0

나는 당신을 도울 수있는 DDEXUI의 일환으로 New Release 메시지에 대한 객체 모델을 만들었습니다. ddex 모듈은 사용할 수있는 것을 제공해야합니다. 나는 그것을 어떤 시점에서 별도의 모듈로 옮길 계획이다. 이를 사용하는 방법의 예는 테스트 디렉토리를 참조하십시오.