Java 如何为具有Webmethod模式命名空间的xml创建xsd

Java 如何为具有Webmethod模式命名空间的xml创建xsd,java,xml,webmethods,Java,Xml,Webmethods,我的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> </

我的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>

30b78e589d5d0a00eba30ec92748d7fa
INC0135185
我想创建一个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。我尝试了很多次,但没有成功


请在此提供帮助。

如果你想承受痛苦,那么编写一个webMethods能够理解的XSD就是最好的选择

你有什么理由要做一个XSD吗

了解webMethods可以接受什么的最简单方法是创建一个web服务,然后在浏览器中复制粘贴WSDL URL,观察webMethods如何定义“
”中的所有内容,然后尝试应用相同的结构来定义您自己的自定义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中手动复制结构

因为我需要根据schema.xml验证输入xml,并且通过生成xsd,我们可以创建模式