2010-04-05 3 views
2

Мне просто интересно, кто-нибудь уже пытался сделать что-то вроде наследования схемы в схемах BizTalk?Наследование схемы в BizTalk Server

Я использую адаптер WCF и использую «службу адаптера потребления», чтобы автоматически генерировать схему, что я хотел, вместо того, чтобы всегда генерировать схему, и поскольку большая часть моей схемы одинакова, тогда я хочу иметь что-то вроде базы схемы.

У меня такой сценарий, что я тестирую плоскую проверку файлов, для отладки мне нужно установить свойство maxoccur схемы в «1», но для пакетной обработки это должно быть «*», вместо создания двух разных схем Я хочу просто создать базовую схему и наследовать ее, а затем изменить свойство maxoccur в производной схеме.

Любая помощь будет оценена по достоинству.

Много спасибо

+0

Кстати, я думаю, что вы должны сделать это наоборот. Все документы, действительные по производной схеме, должны быть действительными по базовой схеме. База может допускать много элементов, а производные позволяют только один, но не наоборот. –

+0

Hi John, Спасибо за ответ, но я не совсем понимаю ваш ответ, не могли бы вы объяснить его подробно? Мой пример был прост только в том, что у меня есть базовая схема и из моей производной схемы (импортированной). Я изменил свойство maxoccur на «*», но когда я попытался протестировать его с помощью инструмента FFDasm, он выдает исключение, кроме элемента (element тип структуры данных - импортированная схема) не объявляется. Спасибо – aggallentes

ответ

0

Можете ли вы огибать свою базовую схему? Тогда вы можете сделать конвейер, чтобы выполнить дебатирование для вас .... определить структуру конверта с любым «любым», повторяющимся внутри него.

<?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> 

затем добавить к коллекции в XMLDisassemble трубопровода ...

Смежные вопросы