использование наследования в процессе BPEL в NetBeans 6.5.1 - PullRequest
0 голосов
/ 24 ноября 2011

Я создаю процесс BPEL, который принимает itinerary в качестве входных данных: он состоит из неограниченного списка элементов и некоторых атрибутов.
Задача этого процесса состоит в том, чтобы просмотреть каждый элемент списка, «зарезервировав» его, присвоить атрибутам какое-то значение и затем вернуть itinerary.
. Каждый из этих элементов сам состоит из двух элементов: некоторая информация для процесса бронирования (которая работает нормально) и конкретный объект, который может быть рейсом или гостиницей. Я попытался определить этот элемент следующим образом:

<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.
Очевидная альтернатива - носить два списка, один для рейсов и один для отелей, но я подумал, что все может быть лучше, и не смог найти ничего по этой теме.
Спасибо за помощь!

1 Ответ

0 голосов
/ 24 ноября 2011

Проблема с вашим XML, насколько я могу судить по фрагментам XML-схемы, заключается в том, что вместоты должен использовать;все должно быть хорошо тогда.Если только вы не намеревались использовать группы подстановки ... Опять сложно сказать из фрагмента XSD.

Мой лучший совет для такого типа проблем - рекомендовать создать образец файла XML, созданный из вашей проверенной XML-схемыс помощью инструмента.Он должен предоставить вам визуализацию того, как должен выглядеть действительный XML, и с этого момента каждому будет легко его кодировать.

...