3

我想将一些 XSD 文件添加到我的 Eclipse XML 目录中,以便它可以验证 XML 文件。不幸的是,XSD 包含并导入了其他 XSD,反过来它们也导入了其他 XSD 文件。

第一个 XSD,BPMN20.xsd:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified"   
    xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
    targetNamespace="http://www.omg.org/spec/BPMN/20100524/MODEL">

    <xsd:import namespace="http://www.omg.org/spec/BPMN/20100524/DI" schemaLocation="BPMNDI.xsd"/>
    <xsd:include schemaLocation="Semantic.xsd"/>
...

第二个 XSD,Semantic.xsd:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
    xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="http://www.omg.org/spec/BPMN/20100524/MODEL">

    <xsd:element name="activity" type="tActivity"/>
    <xsd:complexType name="tActivity" abstract="true">
...

Eclipse 立即告诉我无法注册第二个 XSD,因为它使用的名称空间http://www.omg.org/spec/BPMN/20100524/MODEL与我已经注册了第一个 XSD 的名称空间相同。

是否可以使用 Eclipse 解决 XSD 导入/包含其他 XSD 的问题?我看到很多 XSD 文件引用了其他文件,因此拆分类型或属性定义并将它们保存在不同的文件中似乎很常见。

谢谢乔伊森

4

1 回答 1

1

您应该避免让不同的 xsd 文件声明相同的命名空间。命名空间是一个 URI,因此它应该标识单个资源。

查看本教程以了解如何使用/定义命名空间:http ://www.liquid-technologies.com/Tutorials/XmlSchemas/XsdTutorial_04.aspx

于 2012-07-31T07:31:31.770 回答