2015-10-28 2 views
2

Моего XML является, как показано ниже: -как создать XSD для XML, который имеет пространство имен для WebMethod схемы

<?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 сначала я должен создать схему в web-методах и проверить 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.Looks как это не является допустимым XSD согласно webmethod.i пытались многие, но не повезло.

Пожалуйста, помогите здесь.

ответ

1

Если вы хотите пострадать, то написать XSD, что webMethods может понять, это путь.

Есть ли причина, почему вы должны сделать XSD?

Самый простой способ узнать, что приемлемо для webMethods, это создать веб-службу, а затем скопировать URL-адрес WSDL в браузере и посмотреть, как 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> 

Опять же, если вы можете, постарайтесь держаться подальше от XSDs. WebMethods чрезвычайно придирчив, когда дело доходит до XSD.

Если вы используете какое-то программное обеспечение GUI для генерации XSD, то почти наверняка созданный XSD не будет совместим в webMethods.

Часто то, что я делаю, вместо импорта XSD внутри webMethods, должно читать XSD в блокноте и вручную воспроизводить структуру в webMethods, вручную определяя документы и поля.

+0

, потому что мне нужно проверить встроенный xml на schema.and, создав xsd, мы можем создать схему – samash