在redfine模式中定义自定义类型?

时间:2014-06-16 13:36:40

标签: xsd

我正在编写一个xsd架构,它使用redefine元素重新定义了另一个架构。

像这样:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:redefine schemaLocation="some_schema.xsd">
    .....
    </xs:redefine>
</xs:schema>

有人能告诉我如何在上下文中定义新类型?

<xs:simpleType name="restrictedString">
    <!-- Make a new type to be a "descendant" of string-->
    <xs:restriction base="xs:string">
        <xs:maxLength value="36"/>
    </xs:restriction>
</xs:simpleType>

感谢。

1 个答案:

答案 0 :(得分:0)

好的,所以解决方案实际上非常简单。

必须在重新定义块之后指定自定义类型(restrictedString):

<xs:schema ....>
    <xs:redefine ......>
        .....
        <use of type restrictedString>
    </xs:redefine>

    <xs:simpleType name="restrictedString">
        .... type definition
    </xs:simpleType>
</xs:schema>

在重新定义块之前或重新定义块内部执行此操作不起作用,但在文档的末尾没问题。

感谢。