「4.3.1 DOMパーサに対するXML Schemaのプロパティの設定方法」,および「4.3.2 SAXパーサに対するXML Schemaのプロパティの設定方法」に示した方法では,プロパティを用いてスキーマ文書を設定しています。これに対して,検証の対象となるXML文書内で,直接スキーマ文書を特定する方法もあります。なお,XML文書内でスキーマ文書を特定し,かつ,プロパティを用いてスキーマ文書を特定した場合は,プロパティを使って特定したスキーマ文書が優先されます。
検証の対象となるXML文書内でスキーマ文書を特定するには,xsi:schemaLocation属性またはxsi:noNamespaceSchemaLocation属性を使用します。これらの属性は,特定するスキーマ文書内で,名前空間を定義しているかどうかによって異なります。特定するスキーマ文書の種類と使用する属性の関係を表4-4に示します。
表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属性を使用してスキーマ文書を特定する場合の例を次に示します。