XSD:別のXSDからデータ型をインポートするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/3153256

  •  01-10-2019
  •  | 
  •  

質問

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が存在します。私が本質的に私たちにやりたいことは、他のOgranizationの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, 、これはスキーマバリデーターです。

ありがとう。

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

私はコードをコピー/貼り付けなければなりませんでした。これは私が避けたいものです...しかし、あなたはあなたが望むものをすべて持っていないと思います。

役に立ちましたか?

解決

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

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

他のヒント

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top