Создание событий с вложенными свойствами с помощью 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.