Смешанный и ограниченный элемент не проходит проверку с помощью Xmlbeans - PullRequest
1 голос
/ 08 июня 2011

при работе с 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?

1 Ответ

2 голосов
/ 09 июня 2011

Как уже было отмечено в выпуске XMLBEANS-457 , который вы создали, ревизия 1102771 устраняет проблему.

...