1

XSDの開始は次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
     xmlns:no="http://www.sychophants.com">
<xs:import namespace="http://www.sychophants.com" schemaLocation="current_obs.xsd"/>

...そして他のいくつかの定義...

<xs:element name="noInDatPletd" ref="no:in_dat"/>

in_datが別の組織によって作成されたスキーマに存在する場合。私が本質的にやりたいことは、他の組織のXSDで定義されているin_dat型の要素を含むスキーマを作成することです。

私はこれを正しくすることにさえ近づいていますか?私はXMLにかなり慣れていません。

私は得続けます

    http://location_of_my_xsd/temp.xsd:79:9: Invalid: Undefined element 
    no{http://www.sychophants.com}:in_dat referenced from content model 

スキーマバリデーターであるhttp://www.w3.org/2001/03/webdata/xsvから。

ありがとう。

編集:返信してくれた2人に感謝します。問題は、他の組織がスキーマにtargetNamespace属性を定義していなかったことにあるようです。その結果、名前空間をスキーマにインポートできません。つまり、指定されたタイプを使用できません。

コードをコピーして貼り付ける必要がありましたが、これは避けたかったことです...しかし、必要なものをすべて手に入れることはできないと思います。

4

2 に答える 2

3

明らかなエラーが1つだけありますref="no:in_dat"。タイプを参照するために使用します。そこで使用する必要がtype="no:in_dat"あります。グローバル要素を参照します(属性refと一緒に使用しないでください )。name

それとは別に、独自のスキーマの横にあるバリデーターに外部スキーマを渡しましたか?もちろん、スキーマで検証する必要があります。

于 2010-07-01T07:46:35.050 に答える
1

ref=type=に変更する以外に、スキーマ定義は正しいように見えます。エラーメッセージから、スキーマバリデーターが提供されたschemaLocationからcurrent_obs.xsdをロードできないと推測しています。これは理にかなっています。バリデーターは、スキーマをインポートできなかったため、in_datというタイプがあるかどうかを検証する方法がありません。

于 2010-07-01T19:28:42.187 に答える