Estoy utilizando BizTalk 2006 R2 para generar una referencia web a partir de un archivo WSDL.Referencia web de BizTalk: XSD generado ha "perdido" información de WSDL
Al comparar el XSD generado con el WSDL, es evidente que se ha perdido mucha información.
Considere el siguiente extracto de la WSDL:
<s:element form="unqualified" minOccurs="0" maxOccurs="4" name="Applicant">
<s:complexType>
<s:sequence>
<s:element form="unqualified" minOccurs="1" maxOccurs="1" name="ApplicantIdentifier">
<s:simpleType>
<s:restriction base="s:string" />
</s:simpleType>
</s:element>
<s:element form="unqualified" minOccurs="0" maxOccurs="1" name="Name">
<s:complexType>
<s:sequence>
<s:element form="unqualified" minOccurs="0" maxOccurs="1" name="Title">
<s:simpleType>
<s:restriction base="s:string">
<s:maxLength value="10" />
</s:restriction>
</s:simpleType>
</s:element>
<s:element form="unqualified" minOccurs="0" maxOccurs="1" name="Forename">
<s:simpleType>
<s:restriction base="s:string">
<s:pattern value="[0-9A-Za-z \-]*" />
<s:maxLength value="15" />
<s:minLength value="1" />
</s:restriction>
</s:simpleType>
</s:element>
<!-- more -->
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
El XSD equivalente que BizTalk ha generado es:
<xs:element minOccurs="0" maxOccurs="unbounded" form="unqualified" name="Applicant">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" form="unqualified" name="ApplicantIdentifier" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" form="unqualified" name="Name">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" form="unqualified" name="Title" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" form="unqualified" name="Forename" type="xs:string" />
<!-- more -->
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
Así, el XSD ha perdido los patrones de restricción y ha establecido sus propios valores para minOccurs y maxOccurs.
Necesito hacer un mapeo desde otra fuente al XSD y deseo atrapar datos que no se ajustan al WSDL en esa etapa.
¿Alguien sabe por qué BizTalk no ha preservado las restricciones en el XSD; o cómo puedo generar XSD sin pérdida?
¿El uso de Xsd.exe produce los mismos resultados? – TEEKAY
Gracias por la sugerencia, TEEKAY. Cuando señalé xsd.exe en el archivo WSDL: xsd.exe "C: \ Demos \ MyProblem.wsdl"/o: "C: \ Demos" Recibí el error "Error: argumento de línea de comando no válido:" C: \ Demos \ MyProblem.wsdl '" Luego cambié la extensión de archivo para intentar engañar xsd.exe: xsd.exe" C: \ Demos \ MyProblem.xsd "/ o:" C: \ Demos " Y recibí el error: "Error: solo puede generar una de las clases o conjuntos de datos". Gracias por la sugerencia de todos modos. –