при работе с Xmlbeans я заметил, что когда элемент определен как ограничение смешанного типа, если в этом элементе есть какой-либо текст, проверка Xmlbeans завершается неудачно. проверка схемы в XmlSpy. Вот пример (я попытался сделать его максимально простым):
XML-схема:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="RootElement">
<xs:annotation>
<xs:documentation>Comment describing your root element</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="Child"/>
<xs:element ref="ChildExtended"/>
<xs:element ref="ChildRestricted"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Child" type="MixedType"/>
<xs:element name="ChildRestricted" type="MixedTypeRestricted"/>
<xs:element name="ChildExtended" type="MixedTypeExtended"/>
<xs:complexType name="MixedType" mixed="true"/>
<xs:complexType name="MixedTypeExtended" mixed="true">
<xs:complexContent mixed="true">
<xs:extension base="MixedType"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MixedTypeRestricted" mixed="true">
<xs:complexContent mixed="true">
<xs:restriction base="MixedType"/>
</xs:complexContent>
</xs:complexType>
</xs:schema>
XML-файл:
<RootElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Child>text</Child>
<ChildExtended>text1</ChildExtended>
<ChildRestricted>text2</ChildRestricted>
</RootElement>
Для XmlSpy это действительно. Вот что я получаю при проверке с помощью Xmlbeans:
Message: Element 'ChildRestricted' with empty content type cannot have text or element content.
Location of invalid XML: <xml-fragment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
Как видите, проблема возникает только в том случае, если дочерний элемент определен как ограниченный тип. Мой вопрос: кто прав? XmlSpy (без ошибок) или Xmlbeans?