Объединить две схемы в одну схему (как основную деталь), используя преобразование biztalk - PullRequest
2 голосов
/ 20 апреля 2019

Мне нужно преобразовать две схемы в одну схему как основную схему детализации. у меня есть passengerId как уникальный файл. некоторые записи главной схемы могут не иметь какой-либо ссылки в подробной схеме, поэтому мне нужно условие, чтобы проверить, существует ли в детальной схеме passengerId создание нового дочернего элемента для основной схемы в результате. https://www.dropbox.com/s/8xpbqawstu94u85/transform.jpg?dl=0

основная схема:

 <xs:complexType name="StoredProcedureResultSet0">
 <xs:sequence>
  <xs:element minOccurs="0" maxOccurs="1" name="PassengersId" nillable="true" type="xs:long" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="Gender" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="FirstName" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="LastName" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="ClassOfService" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="SSR" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="FFP" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="ChkInStatus" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="BoardingStatus" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="Passenger_Type" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="SeatNo" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="PassengerCountryCode" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="PassengerCountryName" nillable="true" type="xs:string" /> 
  </xs:sequence>
  </xs:complexType>

подробная схема

 <xs:complexType name="StoredProcedureResultSet0">
 <xs:sequence>
  <xs:element minOccurs="0" maxOccurs="1" name="Origin" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="Destination" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="FlightNo" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="FlightDate" nillable="true" type="xs:dateTime" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="PassengersId" nillable="true" type="xs:long" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="Gender" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="FirstName" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="LastName" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="ClassOfService" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="SSR" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="SSRCode" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="ChkInStatus" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="BoardingStatus" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="Passenger_Type" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="SeatNo" nillable="true" type="xs:string" /> 
  <xs:element minOccurs="0" maxOccurs="1" name="PassengerCountryCode" nillable="true" type="xs:string" /> 
  </xs:sequence>
  </xs:complexType>

результат

<xs:complexType>
<xs:sequence>
  <xs:element name="Origin" type="xs:string" /> 
  <xs:element name="Destination" type="xs:string" /> 
  <xs:element name="FlightNo" type="xs:string" /> 
  <xs:element name="FlightDate" type="xs:dateTime" /> 
  <xs:element name="PassengersId" type="xs:long" /> 
  <xs:element name="Gender" type="xs:string" /> 
  <xs:element name="FirstName" type="xs:string" /> 
  <xs:element name="LastName" type="xs:string" /> 
  <xs:element name="ClassOfService" type="xs:string" /> 
  <xs:element name="SSR" type="xs:string" /> 
  <xs:element name="SSRCode" type="xs:string" /> 
  <xs:element name="ChkInStatus" type="xs:string" /> 
  <xs:element name="BoardingStatus" type="xs:string" /> 
  <xs:element name="Passenger_Type" type="xs:string" /> 
  <xs:element name="SeatNo" type="xs:string" /> 
  <xs:element name="PassengerCountryCode" type="xs:string" /> 
  <xs:element name="ClassOfService" type="xs:string" /> 
  <xs:element name="FFP" nillable="true" type="xs:string" /> 
  <xs:element name="PassengerCountryName" type="xs:string" /> 
  </xs:sequence>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...