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にこのスキーマ構造をどのように受け入れることができますか?これは有効なスキーマですか?