Я пытаюсь использовать следующее в XSD
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" >
<xs:element name="dimension">
<xs:complexType>
<xs:attribute name="height" type="xs:int"/>
<xs:attribute name="width" type="xs:int"/>
<xs:assert test="@height = @width"/>
</xs:complexType>
</xs:element>
Я знаю, что assert/assertion являются частью XML-схемы 1.1, но не 1.0. Однако все, что я прочитал, указывает, что пространство имен одинаково для обоих: http://www.w3.org/2001/XMLSchema
Незначительная проблема заключается в том, что программа, которую я использую для написания схемы (Microsoft Visual Studio), не распознает элемент "assert", говоря, что "element complexType в пространстве имен (...) имеет недопустимый дочерний элемент" assert "".
Основная проблема заключается в том, что когда я действительно пытаюсь проверить XML на эту схему, используя xmllint, она вызывает ошибку, говоря
" element assert: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}complexType': The content is not valid. Expected is (annotation?, (simpleContent | complexContent | ((group | all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?))))
Является ли 1.1 просто не распознанным xmllint/visual studio, несмотря на то, что указана на пространства имен 1.1?