Элемент «Отправить» в пространстве имен «*» имеет недопустимый дочерний элемент «Add_Records» в пространстве имен «*». Сбой тестовой карты для файла карты

У меня есть следующий входной файл:

H|3      |20110607235508
V|M065      |3077999   |NH|PAS|20110608|213400|M| |   
V|M006      |EUR8944   |NY|PAS|20110608|213547|M| |   
V|M057      |UNV39S    |NJ|PAS|20110608|213908|M| |  
T|3      |20110607235508

А у меня такая схема

<xs:schema xmlns="http://BizTalkNyCase.Schemas.CaseFileSchema" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" targetNamespace="http://BizTalkNyCase.Schemas.CaseFileSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:annotation>
  <xs:appinfo>
  <schemaEditorExtension:schemaInfo namespaceAlias="b" extensionClass="Microsoft.BizTalk.FlatFileExtension.FlatFileExtension" standardName="Flat File" xmlns:schemaEditorExtension="http://schemas.microsoft.com/BizTalk/2003/SchemaEditorExtensions" /> 
  <b:schemaInfo standard="Flat File" codepage="65001" default_pad_char="" pad_char_type="char" count_positions_by_byte="false" parser_optimization="speed" lookahead_depth="3" suppress_empty_nodes="false" generate_empty_nodes="true" allow_early_termination="false" early_terminate_optional_fields="false" allow_message_breakup_of_infix_root="false" compile_parse_tables="false" root_reference="CaseFileSchema" /> 
  </xs:appinfo>
  </xs:annotation>
  <xs:element name="CaseFileSchema">
  <xs:annotation>
  <xs:appinfo>
  <b:recordInfo structure="delimited" child_delimiter_type="hex" child_delimiter="0xD 0xA" child_order="infix" sequence_number="1" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" /> 
  </xs:appinfo>
  </xs:annotation>
  <xs:complexType>
  <xs:sequence>
  <xs:annotation>
  <xs:appinfo>
  <groupInfo sequence_number="0" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> 
  </xs:appinfo>
  </xs:annotation>
  <xs:element name="CaseHeader" type="xs:string">
  <xs:annotation>
  <xs:appinfo>
  <b:fieldInfo justification="left" sequence_number="1" /> 
  </xs:appinfo>
  </xs:annotation>
  </xs:element>
  <xs:element minOccurs="3" maxOccurs="3" name="CaseRecords">
  <xs:annotation>
  <xs:appinfo>
  <b:recordInfo structure="delimited" child_delimiter_type="char" child_delimiter="|" child_order="infix" sequence_number="2" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" /> 
  </xs:appinfo>
  </xs:annotation>
  <xs:complexType>
  <xs:sequence>
  <xs:annotation>
  <xs:appinfo>
  <groupInfo sequence_number="0" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> 
  </xs:appinfo>
  </xs:annotation>
  <xs:element name="Vehicle" type="xs:string">
  <xs:annotation>
  <xs:appinfo>
  <b:fieldInfo justification="left" sequence_number="1" /> 
  </xs:appinfo>
  </xs:annotation>
  </xs:element>
  <xs:element name="Officer_Id" type="xs:string">
  <xs:annotation>
  <xs:appinfo>
  <b:fieldInfo justification="left" sequence_number="2" /> 
  </xs:appinfo>
  </xs:annotation>
  </xs:element>
  <xs:element name="Vehicle_Tag" type="xs:string">
  <xs:annotation>
  <xs:appinfo>
  <b:fieldInfo justification="left" sequence_number="3" /> 
  </xs:appinfo>
  </xs:annotation>
  </xs:element>
  <xs:element name="State" type="xs:string">
  <xs:annotation>
  <xs:appinfo>
  <b:fieldInfo justification="left" sequence_number="4" /> 
  </xs:appinfo>
  </xs:annotation>
  </xs:element>
  <xs:element name="Vehicle_Type" type="xs:string">
  <xs:annotation>
  <xs:appinfo>
  <b:fieldInfo justification="left" sequence_number="5" /> 
  </xs:appinfo>
  </xs:annotation>
  </xs:element>
  <xs:element name="TowDate" type="xs:string">
  <xs:annotation>
  <xs:appinfo>
  <b:fieldInfo justification="left" sequence_number="6" /> 
  </xs:appinfo>
  </xs:annotation>
  </xs:element>
  <xs:element name="TowTime" type="xs:string">
  <xs:annotation>
  <xs:appinfo>
  <b:fieldInfo justification="left" sequence_number="7" /> 
  </xs:appinfo>
  </xs:annotation>
  </xs:element>
  <xs:element name="TowType" type="xs:string">
  <xs:annotation>
  <xs:appinfo>
  <b:fieldInfo justification="left" sequence_number="8" /> 
  </xs:appinfo>
  </xs:annotation>
  </xs:element>
  <xs:element name="TowIndicator" type="xs:string">
  <xs:annotation>
  <xs:appinfo>
  <b:fieldInfo justification="left" sequence_number="9" /> 
  </xs:appinfo>
  </xs:annotation>
  </xs:element>
  <xs:element name="Precinct" type="xs:string">
  <xs:annotation>
  <xs:appinfo>
  <b:fieldInfo justification="left" sequence_number="10" /> 
  </xs:appinfo>
  </xs:annotation>
  </xs:element>
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  <xs:element name="CaseTrailer" type="xs:string">
  <xs:annotation>
  <xs:appinfo>
  <b:fieldInfo justification="left" sequence_number="3" /> 
  </xs:appinfo>
  </xs:annotation>
  </xs:element>
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:schema>

и это схема вывода

<xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://SqlAdapterCase" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:annotation>
  <xs:appinfo>
  <msbtssql:sqlScript value="exec [Add_Records] @OfficerId=" ", @Precinct=" ", @State=" ", @TowDate=" ", @TowIndicator=" ", @TowTime=" ", @TowType=" ", @Vehicle=" ", @VehicleTag=" ", @VehicleType=" "" xmlns:msbtssql="http://schemas.microsoft.com/BizTalk/2003" /> 
  </xs:appinfo>
  </xs:annotation>
  <xs:element name="Send">
  <xs:complexType>
  <xs:sequence>
  <xs:element name="Add_Records">
  <xs:complexType>
  <xs:attribute name="OfficerId" type="xs:string" /> 
  <xs:attribute name="Precinct" type="xs:string" /> 
  <xs:attribute name="State" type="xs:string" /> 
  <xs:attribute name="TowDate" type="xs:string" /> 
  <xs:attribute name="TowIndicator" type="xs:string" /> 
  <xs:attribute name="TowTime" type="xs:string" /> 
  <xs:attribute name="TowType" type="xs:string" /> 
  <xs:attribute name="Vehicle" type="xs:string" /> 
  <xs:attribute name="VehicleTag" type="xs:string" /> 
  <xs:attribute name="VehicleType" type="xs:string" /> 
  </xs:complexType>
  </xs:element>
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  <xs:element name="Recive">
  <xs:complexType>
  <xs:sequence>
  <xs:element name="Success" type="xs:anyType" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:schema>

Однако, когда я тестирую карту, я получаю эту ошибку

в качестве входных данных для карты. C:\Users\Administrator\Desktop\error.xml: error btm1046: Ошибка проверки вывода: элемент «Отправить» в пространстве имен «http://SqlAdapterCase» имеет недопустимый дочерний элемент «Add_Records» в пространстве имен «http://SqlAdapterCase'. Сбой тестовой карты для файла карты


person Luis Valencia    schedule 10.02.2016    source источник
comment
Где подробности вашей карты и результаты вашей карты? Это вывод, который не проходит проверку, а не ввод.   -  person Dijkgraaf    schedule 10.02.2016


Ответы (1)


Было бы важно увидеть вашу карту и/или выходное сообщение, чтобы полностью ответить на этот вопрос, но, глядя на вашу схему вывода, требуются все значения (minOccurs не указано, что означает, что по умолчанию установлено значение 1).

У вас есть несколько вариантов:

  1. Если некоторые узлы действительно не требуются, и вы хотите, чтобы ваша схема соответствовала этому, обновите свою схему, чтобы атрибуты/элементы, которые не требуются, имели на них minOccurs="0".
  2. Обновите свою карту, чтобы она обеспечивала действительный вывод для всех необходимых узлов/атрибутов (в настоящее время для всех). Даже пустая строка (или установка свойства узла Value на <Empty> будет работать).
  3. Отключите проверку на картографе. Я обычно так и делаю — часто разработчики не утруждают себя установкой minOccurs="0", а среда выполнения BizTalk не будет выполнять проверку правильности, если только вы специально не используете компонент конвейера проверки (или какой-либо другой настраиваемый компонент проверки). Модульное тестирование карты обычно больше связано с другими вещами, а не с соблюдением всех правил схемы. По умолчанию для этих свойств установлено значение True — измените его на false. Вы всегда можете изменить его позже, если хотите снова подтвердить.

Свойства карты

person Dan Field    schedule 10.02.2016