Мне нужно преобразовать две схемы в одну схему как основную схему детализации. у меня есть 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>