2010-04-05 4 views
2

Je me demandais simplement si quelqu'un avait déjà essayé de faire quelque chose comme l'héritage de schéma dans les schémas BizTalk? J'utilise l'adaptateur WCF et j'utilise le service consommer un adaptateur pour générer un schéma automatiquement. Ce que je voulais, c'est de générer un schéma et comme la plupart de mon schéma est le même, je veux avoir quelque chose comme une base schéma.Héritage de schéma dans BizTalk Server

Je suis en train de tester le débattement de fichiers plats, pour le débatchage, je dois définir la propriété maxoccur du schéma sur '1' mais pour le traitement par lots, il faut '*', au lieu de créer deux schémas différents Je veux simplement créer un schéma de base et en hériter, puis modifier la propriété maxoccur dans le schéma dérivé.

Toute aide serait appréciée.

Merci beaucoup

+0

BTW, je pense que vous devez le faire dans l'autre sens. Tous les documents valides par le schéma dérivé doivent être valides par le schéma de base. La base pourrait permettre de nombreux éléments, et les dérivés ne permettent qu'un, mais pas l'inverse. –

+0

Salut John, Merci pour la réponse, mais je ne comprends pas complètement votre réponse, pouvez-vous s'il vous plaît expliquer minutieusement? Mon exemple était simple: j'ai un schéma de base et de mon schéma dérivé (importé) j'ai changé la propriété maxoccur en '*', mais quand j'ai essayé de le tester en utilisant l'outil FFDasm, il lève une exception. type de structure de données est le schéma importé) n'est pas déclaré. Merci – aggallentes

Répondre

0

Pouvez-vous envelopper votre schéma de base? Ensuite, vous pouvez faire en sorte que le pipeline fasse le débatching pour vous .... Définissez la structure de l'enveloppe avec n'importe quelle "répétition" à l'intérieur.

<?xml version="1.0" encoding="utf-16" ?> 
<xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003"> 
xmlns="urn:SomeProject:Schemas:1.0" targetNamespace="urn:SomeProject:Schemas:1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
<xs:annotation> 
<xs:appinfo> 
<b:schemaInfo is_envelope="yes" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" /> 
</xs:appinfo> 
</xs:annotation> 
<xs:element name="Envelope"> 
<xs:annotation> 
<xs:appinfo> 
<b:recordInfo body_xpath="/*[local-name()='Envelope' and namespace-uri()='urn:SomeProject:Schemas:1.0']" /> 
</xs:appinfo> 
</xs:annotation> 
<xs:complexType> 
<xs:sequence> 
**<xs:any />** 
</xs:sequence> 
</xs:complexType> 
</xs:element> 
</xs:schema> 

puis ajouter à la collection XMLDisassemble du pipeline ...

Questions connexes