【问题标题】:Eclipse XML Catalog: add XSD which imports or includes another XSDEclipse XML 目录:添加导入或包含另一个 XSD 的 XSD
【发布时间】:2012-07-28 13:56:32
【问题描述】:

我想将一些 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 文件引用了其他文件,因此拆分类型或属性定义并将它们保存在不同的文件中似乎很常见。

谢谢 乔伊森

【问题讨论】:

    标签: xml eclipse validation xsd catalog


    【解决方案1】:

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

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

    【讨论】:

    • 是的,很清楚。但这些是来自 OMG 的官方模式文件,您可以在这里看到 omg.org/spec/BPMN/20100501/BPMN20.xsd。这是否仅仅意味着 OMG 违反了 XML/XSD 规范?
    • 对不起,Joysn,我错过了它被包括在内而不是导入的事实。包含属于同一名称空间的模式是完全合法的。也许您必须打开 Eclipse 选项,例如“尊重所有模式位置”:eclipse.org/webtools/releases/3.1.0/newandnoteworthy/…
    • 没有问题。不幸的是,我的 Juno 安装中已经激活了“尊重所有模式位置”。
    猜你喜欢
    • 2011-04-06
    • 2018-03-09
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    相关资源
    最近更新 更多