XMLにおける名前空間
「名前空間」は複数のスキーマ間で「要素」名が衝突しないように使用される。
「要素」とか「属性」とかが混乱しそうなので整理。
下記の例では要素名が「bean」、属性名が「id」や「class」となる。
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" />
「xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"」メモ
「xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"」は
- xsi:schemaLocation属性
- (例)xsi:schemaLocation="http://www.w3schools.com note.xsd"
- xsi:noNamespaceSchemaLocation属性
- xsi:type属性
- xsi:nil属性
を使うために必要。
「xsi:schemaLocation属性 とxsi:noNamespaceSchemaLocation属性」
名前空間を持ったスキーマファイルをXMLデータ側から指定したい場合は、xsi:schemaLocation属性を使って、
対象名前空間のないスキーマファイルを指定したい場合には、xsi:noNamespaceSchemaLocation属性を使う。
もう少し詳しく言うと、
対象となるXMLスキーマ文書のルート要素である
対象となるXMLスキーマ文書のルート要素である
書き方は
xsi:schemaLocation="名前空間1 スキーマファイルのURL1 名前空間2 スキーマファイルのURL2 ... 名前空間n スキーマファイルのURLn"
要するに「xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"」と「xsi:schemaLocation」か「xsi:noNamespaceSchemaLocation」を書いとけばxsd参照できるってこと。
自分がほしいとこだけメモなのでxsi:type属性とxsi:nil属性については省略。
参考:
http://www.mlab.im.dendai.ac.jp/~yamada/web/xml/namespace.html
http://www.technotype.net/tutorial/tutorial.php?fileId=%7BXML%20Schema%7D§ionId=%7Bassoriating-xml-instances-and-schemas%7D
http://www6.airnet.ne.jp/manyo/xml/