如何将多个XSD文件合并到一个XSD文件?

时间:2013-11-18 11:17:44

标签: java xml xsd

我不是XML和XSD的主人。

只是想知道如何将多个XSD文件合并到一个XSD文件中?

先谢谢。

1 个答案:

答案 0 :(得分:2)

您可以多次使用import(不同的命名空间)和include(相同的命名空间)。 redefine也可以多次使用。这取决于你的意思"合并。"

另请参阅http://www.herongyang.com/XML-Schema/Multiple-XSD-Schema-Document-Include-Redefine-Import.htmlhttp://msdn.microsoft.com/en-us/library/ee254473%28v=bts.10%29.aspx

编辑:重新定义可以多次使用(类似于包含)。

示例(在Eclipse中验证)如下。我在必要时使用了不同的命名空间(作为"合并"目标命名空间)和元素名称:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.example.org/m"
    xmlns:tns="http://www.example.org/m" elementFormDefault="qualified">

    <!-- import: different (i.e. not target) namespace -->
    <import namespace="http://www.example.org/a" schemaLocation="so20046640a.xsd"/>
    <import namespace="http://www.example.org/b" schemaLocation="so20046640b.xsd"/>

    <!-- include: same namespace -->
    <include schemaLocation="so20046640c.xsd"/>
    <include schemaLocation="so20046640d.xsd"/>

    <!-- redefine: same namespace -->
    <redefine schemaLocation="so20046640e.xsd"/>
    <redefine schemaLocation="so20046640f.xsd"/>
</schema>

... a.xsd:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.example.org/a"
    xmlns:tns="http://www.example.org/a" elementFormDefault="qualified">
    <element name="a" type="int"/>
</schema>

... b.xsd:与... a.xsd相同但目标命名空间... / b

... c.xsd:与... a.xsd相同但目标命名空间... / m

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.example.org/m"
    xmlns:tns="http://www.example.org/m" elementFormDefault="qualified">
    <element name="a" type="int"/>
</schema>

... d.xsd:与... c.xsd相同,但是元素名称b。

... e.xsd:与... c.xsd相同,但元素名称为e。

... f.xsd:与... c.xsd相同,但元素名称为f。