Я создаю BPEL-процесс, который принимает входной файл itinerary
: это делается из неограниченного списка элементов и некоторых атрибутов.
Задача процесса состоит в том, чтобы перебирать каждый элемент списка, «резервируя» его, присваивать некоторое значение атрибутам, а затем возвращать itinerary
.
Каждый из этих элементов сам по себе состоит из двух элементов: некоторая информация для процесса бронирования (которая отлично работает) и конкретного объекта, который может быть полетом или гостиницей. Я попытался определения, что элемент так:с использованием наследования в процессе BPEL в NetBeans 6.5.1
<xsd:complexType name="ObjectType" abstract="true">
<xsd:sequence>
<xsd:element name="objType" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FlightType">
<xsd:complexContent>
<xsd:extension base="tns:ObjectType">
<xsd:sequence>
<xsd:element name="departureCity" type="xsd:string"></xsd:element>
<xsd:element name="arrivalCity" type="xsd:string"></xsd:element>
<xsd:element name="departureTime" type="xsd:dateTime"></xsd:element>
<xsd:element name="arrivalTime" type="xsd:dateTime"></xsd:element>
<xsd:element name="airline" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ItineraryReservationType">
<xsd:sequence>
<xsd:element name="object" type="tns:ObjectType"></xsd:element>
<xsd:element name="reservation" type="tns:ReservationType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
, а затем использовать их в CompositeApplication с этим видом ввода
<urn:itineraryReservation>
<urn:flight>
<urn:objType>flight</urn:objType>
<urn:departureCity>Ottawa</urn:departureCity>
<urn:arrivalCity>Toronto</urn:arrivalCity>
<urn:departureTime>2007-10-26T08:36:28</urn:departureTime>
<urn:arrivalTime>2004-02-14T19:44:14</urn:arrivalTime>
<urn:airline>Aircanada</urn:airline>
</urn:flight>
<urn:reservation>
<urn:price>3</urn:price>
</urn:reservation>
</urn:itineraryReservation>
, но всякий раз, когда процесс достигает последнего assign
и пытается скопировать itinerary
элемент я получаю Particle not found in the complex type. element={urn:ws.bpelschema}flight, complexType={urn:ws.bpelschema}ItineraryReservationType
.
Очевидной альтернативой является перенос двух списков, один для полетов и один для отелей, но я думал, что все может быть лучше и не может найти что-либо по этой теме.
Спасибо за помощь!
благодарим вас и жаль, что так долго - netbeans неплохо поиграть с: -/не знаю о группах замещения, tho .. заглянет в это! – mccc