2012-07-30 83 views
3

我想將一些XSD文件添加到我的Eclipse XML目錄中,以便驗證XML文件。不幸的是,XSD包含並導入了其他XSD,並反過來導入了其他XSD文件。Eclipse XML目錄:添加導入或包含其他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。

是否有可能解決這個問題的XSD導入/包括其他XSD與Eclipse? 我看到很多引用其他文件的XSD文件,所以它似乎很常見於拆分類型或屬性定義,並將它們保存在不同的文件中。

感謝 Joysn

回答

1

您應避免使用不同的XSD文件聲明相同的命名空間。 命名空間是一個URI,所以它應該標識一個資源。

檢查本教程有關如何使用/定義命名空間:http://www.liquid-technologies.com/Tutorials/XmlSchemas/XsdTutorial_04.aspx

+0

是的,這就是明確的。但是這些是來自OMG的官方模式文件,因爲你可以在這裏看到http://www.omg.org/spec/BPMN/20100501/BPMN20.xsd。 這是否僅僅意味着OMG違反了XML/XSD規範? – Joysn 2012-07-31 18:59:44

+0

對不起,喬伊斯,我錯過了它被列入並沒有進口的事實。包含屬於相同名稱空間的模式是完全合法的。也許你必須打開一個Eclipse選項,如「榮譽所有架構位置」:http://www.eclipse.org/webtools/releases/3.1.0/newandnoteworthy/sourceediting.php – user1187008 2012-07-31 19:57:09

+0

沒有問題。不幸的是,在我的Juno安裝中已經激活了「榮譽所有模式位置」。 – Joysn 2012-08-03 19:56:41