| aliases | |||
|---|---|---|---|
| tags |
|
||
| created | 2023-08-18 12:44:52 -0700 | ||
| modified | 2025-03-16 15:01:24 -0700 |
命名空间,Namespace,是一个有效防止同名标签冲突的机制。
targetNamespace 属性用来指定该 Schema 的命名空间。
xmlns 属性用来引用命名空间。
<web-app version="6.1"
xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_1.xsd">
</web-app>上面例子时 Servlet 中的配置文件 web.xml 的头部引用。
``
xmlns 的完整语法为:xmlns[:xxx],冒号后是引用命名空间时,为此命名空间取的一个「标识符」,或称为「别名」。xml 使用该命名空间中的标签时,需要加上此标识符。
[!info]
xmlns="https://jakarta.ee/xml/ns/jakartaee"这名代码意思是web-app这个 xml 引用了 https://jakarta.ee/xml/ns/jakartaee 这个命名空间。
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"同理,xmlns:xsi这句代码意思是引用了 [http://www.w3.org/2001/XMLSchema-instance] (http://www.w3.org/2001/XMLSchema-instance) 这个命名空间,并且给了个「别名」,也就是说要使用XMLSchema-instance中的组件时,必须带着xsi这个「标识符」。
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_1.xsd"这句代码就是使用了XMLSchema-instance的标签组件schemaLocation,因为上面引用XMLSchema-instance命名空间时,给了xsi这个别名,所以使用时,得带着xsi,所以写成xsi:schemaLocation。