2015-02-06 65 views
0

我想分配值給一個預定義類型的未綁定內部元素,但我無法驗證它。 這裏是我的榜樣與reports.xsd和不工作的代碼片段: ...pyxb問題與分配已知類型的無邊界內部複雜元素的值

<xs:element name="reports" type="tns:Reports"/> 
<xs:complexType name="Reports"> 
    <xs:sequence> 
     <xs:element minOccurs="0" name="description" type="xs:string"/> 
     <xs:element minOccurs="0" name="reportingGroups"> 
      <xs:complexType> 
       <xs:sequence> 
        <xs:element maxOccurs="unbounded" minOccurs="0" 
         name="reportingGroup" type="tns:ReportingGroupType"/> 
       </xs:sequence> 
      </xs:complexType> 
     </xs:element> 
    </xs:sequence> 
</xs:complexType> 
<xs:complexType name="ReportingGroupType"> 
    <xs:sequence> 
     <xs:element name="title" type="xs:string"/> 
     <xs:element minOccurs="0" name="description" type="xs:string"/> 
    </xs:sequence> 
    <xs:attribute name="id" type="xs:ID" use="required"/> 
</xs:complexType> 

import reports 
rep=reports.reports() 

rep.description="this report is ..." #works 

rep.reportingGroups=pyxb.BIND() 

rep.reportingGroups.append("ReportingGroupType(name='this title",id=xs.string("A1")) #works 

print(rep.reportingGroups.toxml("utf-8")) #does not work 

我沒能找到類似這樣的一個情況。我感謝您的幫助。 Malika

+0

謝謝你 - 它的工作對我來說太。 – malika 2015-02-12 14:00:48

回答

0

如果你解釋了「不起作用」對你意味着什麼,這將有所幫助。

這條線:

rep.reportingGroups.append("ReportingGroupType(name='this title",id=xs.string("A1")) #works 

是奇怪,對我不起作用,產生一個「無效的非元素含量」的錯誤,因爲字符串ReportingGroupType(name='this title不能被解釋爲ReportingGroupType類型的元素。

如果我更換一個對象的構造函數,字符串和糾正工作中的從屬元素的名稱:

rep.reportingGroups.append(reports.ReportingGroupType(title='not name', id='A1'))