XML-Schema:什么是限制`xs:anyType`的类型

时间:2016-09-01 09:20:28

标签: xml java-ee xsd jaxb

我有这个我不理解的xml类型定义,我希望将其映射到java bean的属性:

<xs:complexType mixed="true" name="SimpleLiteral">      
    <xs:complexContent mixed="true">
        <xs:restriction base="xs:anyType">
            <xs:sequence>
                <xs:any maxOccurs="0" minOccurs="0" processContents="lax"/>
            </xs:sequence>
        </xs:restriction>
    </xs:complexContent>
</xs:complexType>

我认为最好将其映射到String - 属性。但是什么是typedefinition有用?

1 个答案:

答案 0 :(得分:2)

除非我遗漏了某些内容,否则类型本身的值空间也将等同于简单类型 xs:string 的值空间。我看到了类型系统和层次结构方面的差异。

它与简单类型 xs:string 的不同之处在于它是一个复杂的类型,因此它可以通过扩展派生来创建具有的子类型元素标签和/或属性。这会对使用XML-Schema验证的实例(例如XQuery)的语言产生影响。

我并不是说这必然是上述声明的意图,但无论如何这是可以做到的事情:

<xs:complexType name="stringWithTags">
    <xs:complexContent mixed="true">
        <xs:extension base="SimpleLiteral">
            <xs:sequence>
                <xs:element name="some-tag" type="xs:string"/>
            </xs:sequence>
        </xs:extension>
    </xs:complexContent>
</xs:complexType>