Сообщение BizTalk не проходит проверку схемы, но обрабатывается очень хорошо - PullRequest
1 голос
/ 05 января 2011

У меня есть схема BizTalk, которая выглядит примерно так:

<Root>
   <Header>
      <SomeData></SomeData>
      <Detail>
         <MoreData1></MoreData1>
         <MoreData2></MoreData2>
         <MoreData3></MoreData3>
      </Detail>
   </Header>
</Root>

Ни у одного из элементов не установлены значения Max Occurs или Min Occurs.

Сообщение создается внутри оркестровки путем назначения ему XmlDocument. Затем это сообщение используется в нескольких других местах оркестровки, и я записываю его на диск для проверки.

Проблема в том, что после того, как сообщение записано, если я попытаюсь использовать некоторые из тех же самых XML-файлов в качестве входного экземпляра, они не пройдут проверку. Например, некоторые могут иметь более одного элемента <Detail>, а некоторые могут отсутствовать <MoreData2>.

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

1 Ответ

5 голосов
/ 05 января 2011

В BizTalk сообщения XML проверяются только в конвейерах. Как только сообщение достигло оркестровки, существует предположение (для эффективности), что сообщения не нужно проверять на соответствие их схеме. Когда сообщения создаются с помощью преобразований, проверка схемы не выполняется после.

Итак, в вашем случае входящее сообщение должно иметь конвейер приема XML с включенной проверкой. Это остановит поступление сообщения. Аналогично, вы можете включить проверку в конвейере отправки XML. Это остановит вывод плохих сообщений.

Однако есть варианты для проверки схемы в оркестровке. Сначала описан здесь . Есть также много других похожих техник, если вы используете Google / Bing.

Здесь также есть интересная статья, в которой вы можете включить проверку XSD в Orchestration здесь . Это звучит хорошо, но это настройка для всего сервера. Так что это будет применяться ко всем приложениям ... включая те, которые работают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...