1

スライドショー、問題、ウィジェットの 3 つのスキーマがあります。スライドショーと問題のスキーマはウィジェットをインポートします。ただし、スライドショー、問題、およびウィジェットの名前空間は異なります。次のようにインポートを定義しました。

 <?xml version="1.0" encoding="UTF-8"?>
 <xs:schema targetNamespace="http://www.mydomain.com/slideshow"
       xmlns="http://www.mydomain.com/slideshow"
       xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:wd="http://www.mydomain.com/widgets"
       elementFormDefault="qualified">

    <xs:import namespace="http://www.mydomain.com/widgets" schemaLocation="./widgets-v1.0.xsd"/>

 </xs:schema>

ただし、これには、ウィジェット スキーマの要素に完全修飾名を使用する必要があります (例: wd:someElement)。ウィジェットの定義をスライドショーと問題の名前空間にインポートして、wd:someElement を使用して someElement を参照する必要がないようにしたいと考えています。それらがそれぞれのスキーマで直接定義されているかのように。

私はインクルードを試みましたが、それにはウィジェットがインポートするドキュメントと同じ名前空間である必要があり、問題があり、ウィジェットが異なるため、そのオプションは機能しないようです。

これどうやってするの?

4

2 に答える 2

2

3 つのスキーマ ドキュメントの要素を異なる名前空間に配置する場合は、QNames を使用してそれらを参照する必要があります。

もちろん、異なる名前空間を使用しないように設計を変更することもできますが、それがやりたいことを示唆していません。

于 2013-10-12T15:58:05.180 に答える