我有几个 XSD 有时会发生变化。
我过去常常用硬编码编写我的 XML 文件,因此每次更改 XSD 时,我都必须搜索依赖于该 XSD 的 XML 文件。
这就是我转向 generateDS(2.15b 版)的原因。
我使用 generateDS 编写了一个脚本,这样每次更改 XSD 时,generateDS 脚本都会运行并生成类。
生成的类用作我检查 XML 是否适合的“结构”。
例如,如果我有这个作为我的 XSD:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://tempuri.org/PurchaseOrderSchema.xsd"
targetNamespace="http://tempuri.org/PurchaseOrderSchema.xsd"
elementFormDefault="qualified">
<xsd:element name="PurchaseOrder" type="tns:PurchaseOrderType"/>
<xsd:complexType name="PurchaseOrderType">
<xsd:sequence>
<xsd:element name="ShipTo" type="tns:USAddress" maxOccurs="2"/>
<xsd:element name="BillTo" type="tns:USAddress"/>
</xsd:sequence>
<xsd:attribute name="OrderDate" type="xsd:date"/>
</xsd:complexType>
<xsd:complexType name="USAddress">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="street" type="xsd:string"/>
<xsd:element name="city" type="xsd:string"/>
<xsd:element name="state" type="xsd:string"/>
<xsd:element name="zip" type="xsd:integer"/>
</xsd:sequence>
<xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US"/>
</xsd:complexType>
</xsd:schema>
我正在创建这个类:
us = orders_api.USAddress(state = "NY")
pot = orders_api.PurchaseOrderType(BillTo = us,
OrderDate=datetime.datetime.now())
有没有办法pot
使用 XSD 验证实例 ( )?(对于这个例子,pot 不是一个有效的 xml,因为它没有 'ShipTo' 元素,我们没有 'country' 属性和其他元素)