Создание событий с вложенными свойствами с помощью INSERT INTO в Esper

Я определил тип события на основе XML PositionUpdate в Esper с вложенными свойствами, как показано ниже.

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="PositionUpdate.xsd"
targetNamespace="PositionUpdate.xsd" elementFormDefault="qualified">

<xs:element name="PositionUpdate">
    <xs:complexType>
        <xs:sequence>
                        <!-- snip -->
            <xs:element name="currentLocation" minOccurs="1" maxOccurs="1">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="latitude" type="xs:double"
                            minOccurs="1" maxOccurs="1" />
                        <xs:element name="longitude" type="xs:double"
                            minOccurs="1" maxOccurs="1" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
                        <!-- snip -->
        </xs:sequence>
    </xs:complexType>
</xs:element>

Теперь я хочу использовать предложение INSERT INTO для создания событий этого типа. Однако я не смог найти способ заполнить вложенные свойства. Следующий оператор EPL не выполняется из-за точки (currentLocation.latitude).

INSERT INTO PositionUpdate
SELECT v2.latitude as currentLocation.latitude, v2.longitude as currentLocation.longitude
FROM PATTERN [ever v1=VehiclePosition -> v2=VehiclePosition(operatorId=v1.operatorId)
WHERE (v1.latitude!=v2.latitude OR v1.longitude!=v2.longitude)

Та же синтаксическая ошибка возникает при попытке INSERT INTO PositionUpdate(currentLocation.latitude, currentLocation.longitude) ...

Мой вопрос: есть ли у вас способ заполнить вложенные свойства с помощью операторов EPL?

1 ответ

В настоящее время нет средств для создания XML-документа схемы. Самый простой - создать объект и маршал как XML.

Другие вопросы по тегам