J'ai une réponse XML provenant d'un autre système, mais pas de XSD, j'ai donc utilisé l'option Créer un schéma pour en générer un.XSD généré par BizTalk ne parvient pas à valider le code XML dérivé de
J'ai ensuite ajouté le fichier XSD à mon projet BizTalk 2006 R2 et j'ai défini sa propriété "Input Instance Filename" sur le message XML d'origine.
Essayé l'option « Valider instance » et il ne réussit pas ???, avec quelques erreurs comme si ...
erreur BEC2004: xsi: valeur d'attribut de type « http://www.w3.org/2001/XMLSchema:int » est pas valable pour l'élément ' http://www.aniteps.com/xml/schemas/awm/images4:NumberOfErrors ', soit parce que ce n'est pas un type dérivant valablement du type dans le schéma, soit parce qu'il a une dérivation xsi: type bloquée.
Comment diable peut échouer le XML qui a été utilisé pour générer le XSD?
L'exemple XML je ... est
<?xml version="1.0" encoding="utf-8"?>
<ImportIndexDocumentResponse
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.aniteps.com/xml/schemas/awm/images4">
<HasErrors>false</HasErrors>
<NumberOfErrors xsi:type="xsd:int">0</NumberOfErrors>
<ErrorDescription xsi:type="xsd:string">No exception ocurred.</ErrorDescription>
<ErrorNumber xsi:type="xsd:int">0</ErrorNumber>
<FailedItems>
<Item>
<OriginalDataString xsi:type="xsd:string" />
<ErrorDescription xsi:type="xsd:string" />
</Item>
</FailedItems>
<UniqueDocumentReferences>
<UniqueDocumentReference>FA40FE</UniqueDocumentReference>
<UniqueDocumentReference>U55922</UniqueDocumentReference>
</UniqueDocumentReferences>
</ImportIndexDocumentResponse>
et BizTalk/Visual Studio 2005 génère ...
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="http://www.aniteps.com/xml/schemas/awm/images4">
<xs:element name="ImportIndexDocumentResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="HasErrors" type="xs:boolean" />
<xs:element name="NumberOfErrors" type="xs:unsignedByte" />
<xs:element name="ErrorDescription" type="xs:string" />
<xs:element name="ErrorNumber" type="xs:unsignedByte" />
<xs:element name="FailedItems">
<xs:complexType>
<xs:sequence>
<xs:element name="Item">
<xs:complexType>
<xs:sequence>
<xs:element name="OriginalDataString" />
<xs:element name="ErrorDescription" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="UniqueDocumentReferences">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="UniqueDocumentReference" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xsd:schema>
Spot sur Tomas, changé en xs: int et mon test d'unité fonctionne un régal. Un grand merci pour l'aide – SteveC