2
有沒有人有過或者知道如何編輯XSD以進行XML-RPC方法調用?XML-RPC Schema .xsd
我發現這一個:MSDN Xml Rpc Schema
但是它不能夠有效的XML-RPC的情況。這似乎落位是:
<xsd:complexType name="ValueType" mixed="true">
<xsd:choice>
<xsd:element name="i4" type="xsd:int" />
<xsd:element name="int" type="xsd:int" />
<xsd:element name="string" type="ASCIIString" />
<xsd:element name="double" type="xsd:decimal" />
<xsd:element name="Base64" type="xsd:base64Binary" />
<xsd:element name="boolean" type="NumericBoolean" />
<xsd:element name="dateTime.iso8601" type="xsd:dateTime" />
<xsd:element name="array" type="ArrayType" />
<xsd:element name="struct" type="StructType" />
</xsd:choice>
</xsd:complexType>
根據the XML-RPC spec,以下是有效的:
...
<value>example text</value>
....
因爲如果沒有提供型元件,所述元件<value>
內的文本被默認爲字符串。然而,上面的xsd不會驗證它。
我試圖將其更改爲:
<xsd:complexType mixed="true" name="ValueType">
<xsd:choice minOccurs="0" maxOccurs="1">
<xsd:element name="i4" type="xsd:int" />
<xsd:element name="int" type="xsd:int" />
<xsd:element name="string" type="ASCIIString" />
<xsd:element name="double" type="xsd:decimal" />
<xsd:element name="Base64" type="xsd:base64Binary" />
<xsd:element name="boolean" type="NumericBoolean" />
<xsd:element name="dateTime.iso8601" type="xsd:dateTime" />
<xsd:element name="array" type="ArrayType" />
<xsd:element name="struct" type="StructType" />
</xsd:choice>
</xsd:complexType>
但是,允許:<value>testtext<string>with more text</string></value>
不應根據規範有效。
我無法嘗試使它成爲Value元素可以包含數據或元素,但不是兩者的混合。
Anywho,如果有人知道如何解決上述問題或有一個他們可以提供的工作xsd,將非常感激。
啊,我對xsd的知識有限,並且非常感謝您指出我們以前的失敗嘗試時發禿。我已經切換到使用RELAXng架構,似乎做了我需要的一切。謝謝 – DJOodle 2013-03-26 13:45:59