2011-10-17 23 views
1

Springの設定(XML)ファイルを設定しようとしていて、自分のプロジェクト内にローカルに存在する有効なスキーマファイルの名前空間を追加しようとしています。その理由は、私は「本物」のURL(Webサーバなど)を持っていないということですので、私はちょうど私がWEB-INF/の下で提供されますローカルスキーマを使用しようとしている:私のspring-config.xml内部Spring XMLの設定と名前空間

MyProject/ 
    src/ 
     java/ 
     config/ 
      MySchema.xsd 
      spring-config.xml 
    build.xml 

を:

<?xml version="1.0" encoding="UTF-8"?> 

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:ms="http://myproject.org/MySchema.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation=" 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> 

プロジェクトは細かい展開&を構築しているが、私はそれを実行するために行くとき、私は得る:

org.xml.sax.SAXException: Failed to locate XSD resource '/META-INF/MySchema.xsd' on 
classpath. Namespace: 'http://myproject.org/MySchema.xsd'. 

最終的に私はspring-config.xmlとの両方が欲しいですがWEB-INF/の下に格納されているので、なぜSpringが内部を探しているのか分かりません。META-INF/ ...任意のアイデア?

URL http://myproject.org/MySchema.xsdは実際のURLではなく、スキーマに独自の名前空間を与えます。前もって感謝します!

+1

これはSAXで、SpringではなくMETA-INFでxsdを探しています。 –

答えて

2

xsi:schemaLocation属性のhttp://myproject.org/MySchema.xsdの「定義」(正しい用語がわかりません)はありません。このような何かを試してみてください:あなたはspring.schemasspring.handlersを定義

xsi:schemaLocation=" 
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd 
http://myproject.org/MySchema.xsd location/of/MySchema.xsd"> 
+0

ありがとう@DwB! – IAmYourFaja

0

あなたはまた、あなたのhttp://myproject.org/MySchema.xsdnamespaceためschema locationを定義する必要があります。 W3Cからスキーマの場所:

は空白で区切られた1つ以上のURI参照のペアで構成されます。各ペアの最初のメンバは名前空間名であり、ペアの2番目のメンバは、その名前空間の適切なスキーマドキュメントの場所を示すヒントです。これらのヒントの存在は、プロセッサが引用されたスキーマ文書を入手または使用することを要求せず、プロセッサは任意の適切な手段によって得られた他のスキーマを自由に使用することができ、スキーマを全く使用しない。

名前空間のスキーマドキュメントのヒントと混同しないように、別の名前空間名を使用します。おそらくhttp://myproject.org/my-schema config/MySchema.xsdのようなスキーマの場所を使用してください。

関連する問題