Hitachi

Cosminexus V11 アプリケーションサーバ Cosminexus XML Processor ユーザーズガイド


4.4.3 スキーマ文書をXML文書内で設定する方法

4.4.1 DOMパーサに対するXML Schemaのプロパティの設定方法」,および「4.4.2 SAXパーサに対するXML Schemaのプロパティの設定方法」に示した方法では,プロパティを用いてスキーマ文書を設定しています。これに対して,検証の対象となるXML文書内で,直接スキーマ文書を特定する方法もあります。なお,XML文書内でスキーマ文書を特定し,かつ,プロパティを用いてスキーマ文書を特定した場合は,プロパティを使って特定したスキーマ文書が優先されます。

検証の対象となるXML文書内でスキーマ文書を特定するには,xsi:schemaLocation属性またはxsi:noNamespaceSchemaLocation属性を使用します。これらの属性は,特定するスキーマ文書内で,名前空間を定義しているかどうかによって異なります。特定するスキーマ文書の種類と使用する属性の関係を次の表に示します。

表4‒4 特定するスキーマ文書の種類と使用する属性の関係

特定するスキーマ文書の種類

使用する属性

名前空間を定義したスキーマ文書

xsi:schemaLocation

名前空間を定義していないスキーマ文書

xsi:noNamespaceSchemaLocation

xsi:schemaLocation属性を使用する場合,特定するスキーマ文書内で宣言されている要素や属性の名前空間のURIと,特定するスキーマ文書名を空白で区切って指定します。

xsi:schemaLocation属性,およびxsi:noNamespaceSchemaLocation属性は,どちらも名前空間"http://www.w3.org/2001/XMLSchema-instance"に属します。したがって,これらの属性を使ってスキーマ文書を特定する場合,名前空間"http://www.w3.org/2001/XMLSchema-instance"を宣言する必要があります。

xsi:schemaLocation属性を使用してスキーマ文書を特定する場合の例を次に示します。

[図データ]

  1. xsi:schemaLocation属性の名前空間を宣言します。

    xsi:schemaLocation属性を使ってスキーマ文書を特定するために,この属性の名前空間"http://www.w3.org/2001/XMLSchema-instance"を宣言します。

  2. スキーマ文書を特定します。

    特定するスキーマ文書内で宣言されている要素や属性の名前空間のURI,およびスキーマ文書名を空白で区切って指定します。

    上記の例では,スキーマ文書としてpurchaseOrder.xsdを,スキーマ文書purchaseOrder.xsd内で宣言されている要素や属性の名前空間として"http://www.myshopping.com/schema/purchaseOrder"を指定しています。