如何将内部可填充元素设置为null

时间:2015-02-25 16:28:05

标签: xml xsd pyxb

我试图将一个名为nbReports的内部可填充元素设置为null,到目前为止我已经失败了。

下一步是XSD文件和代码的快照:

<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 name="nbReports" type="xs:int" nillable="true"/>
  </xs:sequence>
  <xs:attribute name="id" type="xs:ID" use="required"/>
</xs:complexType>

代码快照:

import reports
rep=reports.reports()
rep.description="this report is ..." 
temp=ReportingGroupType(id=xs.string("A1")
temp.title="this title")
temp.nbReports._setIsNil #"error: AttributeError: 'NoneType' object has no attribute  '_setIsNil'

如果我尝试将nbReports设置为任何值(例如4)以创建nbReprots的实例,然后将其设置为null,那么当我打印它时,nbReprots值将保持为4。

1 个答案:

答案 0 :(得分:0)

根据Ken的评论,我能够将nil属性设置为true:temp.nbReports._setIsNil(nil = True)。但是,在将nil属性设置为true之前,我必须创建一个nbReports实例(temp.nbReports = pyxb.BIND())。

感谢您的帮助。

玛莉卡