XML命名空间通过xmlns:前缀="URI"声明绑定,用前缀:本地名引用;前缀作用域限于声明元素及其子元素,URI仅作唯一标识;默认命名空间(xmlns="URI")影响无前缀名称,与带前缀命名空间互不干扰。
在XML中使用命名空间前缀,核心是通过xmlns:前缀="URI"声明绑定,并在元素或属性中用前缀:本地名来引用该命名空间下的名称。
在起始标签(通常是根元素)中使用xmlns:前缀属性,将前缀与一个唯一的命名空间URI关联。URI只是标识符,不一定要可访问。
—— 声明前缀bk指向http://example.com/books
ns、abc、xsi),但不能是xml(已预定义)或xmlns(用于声明本身)声明后,可在同一元素及其子元素中用前缀:本地名形式标记属于该命名空间的元素或属性。
XML Guide —— bk:book和bk:title都属于http://example.com/books命名空间Jane Doe —— 属性bk:lang也受该命名空间约束(除非显式声明为无命名空间)默认命名空间(xmlns="URI")作用于当前元素及其未加前缀的子元素,但它不影响带前缀的名称;而前缀命名空间只对明确使用该前缀的名称生效。
... - ...
—— element属于默认命名空间,ext:item属于http://extra.com
xmlns=""意外取消默认命名空间,导致预期外的无命名空间元素命名空间前缀的作用域从声明处开始,到对应结束标签为止;嵌套声明会覆盖同名前缀;解析器按URI而非前缀识别命名空间。
bk:book和lib:book只要URI相同,就表示同一个命名空间中的同名元素
ML Schema实例常用xsi:type,其中xsi必须声明为xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"