2

我的 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,我必须在 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 中创建模式。看起来这不是根据 webmethod 的有效 xsd。我尝试了很多但没有运气。

请在这里帮忙。

4

1 回答 1

1

如果您想受苦,那么编写 webMethods 能够理解的 XSD 是您的必经之路。

有什么理由必须制作 XSD 吗?

了解 webMethods 可接受的内容的最简单方法是创建 Web 服务,然后将 WSDL URL 复制粘贴到浏览器中并观察 webMethods 如何定义“ <xsd:schema ..> ... </xsd:schema>”中的所有内容,然后尝试应用相同的结构来定义您自己的自定义 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 中的结构。

于 2015-10-28T20:54:16.043 回答