#schema #xml-validation
#схема #xml-проверка
Вопрос:
У меня есть схема, называемая BPMN20.xsd, имеющая элемент с именем extensionElements.смотрите пример ниже:
<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 if extensionElements определяется как any . Однако я также хочу проверить содержимое внутри extensionElements на соответствие ufl.xsd
Пожалуйста, помогите…
Спасибо, Сиддхартх
Ответ №1:
Используйте processContents как слабый в схеме, где вы определили любой элемент. Это принудит конвертер к поиску элемента схемы для переданного xml.