Проверять XML по схеме, имеющей какой-либо элемент - PullRequest
1 голос
/ 03 ноября 2011

У меня есть, скажем, схема BPMN20.xsd, имеющая элемент extensionElements.see ниже:

<xsd:element name="extensionElements" type="tExtensionElements" /> 
    <xsd:complexType name="tExtensionElements">
        <xsd:sequence>
            <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> 
        </xsd:sequence>
    </xsd:complexType>

Теперь xml содержит элементы в extensionElements, которые соответствуют другой схеме, скажем, ufl.xsd. Пример:

<extensionElements>
    <ufl:java method="calculate"
            class="com.companyx.orchestration.bpmn.ordermanagement.data.CalculateOrderAmount">
                    <ufl:arg type="com.companyx.orchestration.bpmn.ordermanagement.data.OrderLine"
                        var="item" />
                </ufl:java>
</extensionElements>

Теперь я хочу проверить мой XML по обеим схемам. Как это сделать? Если я просто проверяю свой xml на BPMN20.xsd, он работает (так как content, если extensionElements определен как любой. Однако я также хочу проверить содержимое в extensionElements на ufl.xsd

Пожалуйста, помогите ...

Спасибо, Сиддхарт

1 Ответ

0 голосов
/ 21 февраля 2012

Используйте processContents как слабый в схеме, где вы определили любой элемент.Это приведет к тому, что конвертер найдет элемент схемы для переданного xml.

...