我需要为CodeSynthesis的XSD创建一个xsd文件。 不同的响应类型将有多个模式。 正如您在示例XML文件中看到的,一些元素具有type属性,而一些元素具有nil属性。这些属性不提供解析信息,我已经知道类型并在xsd文件中正确设置它们。除此之外,我不知道哪些元素是可以收费的。可以在xsd模式中跳过这些属性,或者我应该为每个元素编写:
<xsd:complexType>
<xsd:attribute name="type" type="TypeAttr" fixed="integer"/>
<xsd:attribute ref="nil"/>
</xsd:complexType>
其中
<xsd:attribute name="nil" type="xsd:boolean"/>
这是XML文件之一:
<?xml version="1.0" encoding="UTF-8"?>
<account>
<access-key>bla-bla-bla</access-key>
<billing-error-date type="date" nil="true"></billing-error-date>
<default-ticket-report-id type="integer">0</default-ticket-report-id>
<default-time-zone nil="true"></default-time-zone>
<description nil="true"></description>
<disk-usage type="integer">38048</disk-usage>
<flagged-for-billing-error type="boolean">false</flagged-for-billing-error>
<force-ssl type="boolean">false</force-ssl>
<id type="integer">1</id>
<plan>micro</plan>
<subdomain>companyname</subdomain>
<text-markup>markdown,textile,plain</text-markup>
<title>companyname</title>
<features>
<attachments>true</attachments>
<ssl>false</ssl>
<storage>512</storage>
<time_tracking>false</time_tracking>
<max_people>10</max_people>
<max_pages>99999</max_pages>
<beta>false</beta>
</features>
<notebook_pages>0</notebook_pages>
<created-at>2011-02-16T13:50:09Z</created-at>
<updated-at>2011-04-07T09:11:10Z</updated-at>
</account>
答案 0 :(得分:0)
我使用以下内容添加type和nil属性支持。
<xsd:complexType name="UString">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="type" type="TypeAttr" fixed="string" use="optional"/>
<xsd:attribute name="nil" type="xsd:boolean" use="optional"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="UInteger">
<xsd:simpleContent>
<xsd:extension base="xsd:integer">
<xsd:attribute name="type" type="TypeAttr" fixed="integer" use="optional"/>
<xsd:attribute name="nil" type="xsd:boolean" use="optional"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:simpleType name="TypeAttr">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="datetime"/>
<xsd:enumeration value="integer"/>
<xsd:enumeration value="boolean"/>
</xsd:restriction>
</xsd:simpleType>