2012-02-16 9 views
0

Nokogiriを使用してXML文書を検証するために使用しようとしているスキーマのコレクションがあります。元の名前空間を使用して別のスキーマをインポートするスキーマをインポートする

私は名前空間http://example.com/rootを持つトップレベルのスキーマを持っています。ネームスペースhttp://example.com/extensionを持つ別のスキーマExtension.xsdをインポートし、スキーマTypes.xsd(明示的にはhttp://example.com/rootという名前空間を持っています)を含みます。

名前空間がhttp://example.com/extensionであるExtension.xsdスキーマは、名前空間がhttp://example.com/rootであるスキーマTypes.xsdをインポートします。

Nokogiriにルートスキーマをロードしようとすると、Element import: The schema document Types.xsd cannot be imported, since it was already included or redefinedという文句があります。

Extension.xsdファイルからインポートステートメントを取り除くと、何もインポートされなかったので、http://example.com/rootという名前空間への参照は許可されていないとNokogiriは述べています。 ルートスキーマファイルからインクルードステートメントを取り除くと、NokogiriはTypes.xsdのルートスキーマで使用されている要素が要素宣言に解決しないと言います。

Nokogiriにこのスキーマ構造をどのように受け入れることができますか?これは有効なスキーマですか?

答えて

1

実際には、この例に示すように、サイクリックxs:import宣言を持つことは完全に有効です。しばしば必要です。私はノコギリを知らないので、修正があるかどうかわかりません。

関連する問題