我的xml如下: -
<?xml version="1.0"?>
<create xmlns:xsi="https://csu.service-now.com">
<sys_id xsi:type="xsd:string">30b78e589d5d0a00eba30ec92748d7fa</sys_id>
<number xsi:type="xsd:string">INC0135185</number>
</create>
我想创建一个xsd,通过该xsd验证将成功。基本上,通过xsd首先我必须在webmethods中创建一个模式,并针对该xml验证xml。
到目前为止我尝试过的是:<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="create">
<xs:complexType>
<xs:sequence>
<xs:element name="sys_id">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute ref="csu:type" xmlns:csu="https://csu.service-now.com"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="number">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute ref="csu:type" xmlns:csu="https://csu.service-now.com"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
但它没有在webmethods中创建模式。像这样的问题不是一个有效的xsd,因为webmethod.i试了很多但没有运气。
请在这里帮忙。
答案 0 :(得分:1)
如果你想受苦,那么编写一个webMethods能够理解的XSD是要走的路。
你有什么理由要制作XSD吗?
了解webMethods可接受的最简单方法是创建一个Web服务,然后在浏览器中复制粘贴WSDL URL,并观察webMethods如何定义&#34; <xsd:schema ..> ... </xsd:schema>
&#34;然后尝试应用相同的结构来定义您自己的自定义XSD。
以下是我的头脑:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
targetNamespace="http://some.target.namespace/test"
xmlns:tns="http://some.target.namespace/test"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="ServiceRequest" type="tns:ServiceRequest"/>
<xsd:complexType name="ServiceRequest">
<xsd:sequence>
<xsd:element name="Create" nillable="false" type="tns:Create"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Create">
<xsd:sequence>
<xsd:element name="sys_id" nillable="true" type="xsd:string"/>
<xsd:element name="number" nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
同样,如果可以,请尝试避开XSD。 WebMethods在XSD方面非常挑剔。
如果您使用某种GUI软件生成XSD,那么几乎可以肯定生成的XSD在webMethods中不会兼容。
我经常做的不是在webMethods中导入XSD,而是在记事本中读取XSD,并通过手动定义文档和字段手动重现webMethods中的结构。