xml命名空间解惑

预备知识,右转w3school看命名空间:http://www.w3school.com.cn/xml/xml_namespaces.asp



1.所以说标签定义在不同命名空间有啥用?
比如两个人A、B对标签有不同理解,现在你要对包含这个标签的xml进行解析(比如在java中),A要求你要解析到时输出字符'A',B则要求你输出'B',所以遇到该标签时你要怎么处理?
解决方法就是命名空间。大家做个约定,当时按A的要求输出'A',当时按B的要求输出'B'。

2.xmlns的值为什么多数是url格式?
约定俗成。

3.为什么很多平台上xmlns的值有些是固定统一的?比如wpf的xaml和android的xml文件中?
事实上值是随便你取的,但是总有一个确定值要使用。难讲清,看下面例子吧。
假定全世界的人都知道遇到http://my/url命名空间中的标签时,要输出"Hello"。现在你遇到了陌生人的写在http://gaoshi/aa命名空间中的标签,那么要不要输出"Hello"呢?你不知道。

4.所以命名空间跟这个xml文件里可以有什么标签是没有关系的,对吗?
是的,在没有xsd(xml scheme definition)下和指定环境下,xml文件只要满足基本格式规范,就是合法的,跟命名空间没有关系。

5.怎么限定xml文件的规范呢?比如说要求这个xml文件只能有某些标签和某些属性值?
右转xsd:http://www.w3school.com.cn/schema/schema_intro.asp
在xml文件中对xsd进行引用,即可按要求规范你的xml文件。

6.为什么在xhtml(or android的xml)开发时,我没有引用xsd文件,编辑器(or IDE)依然能提示我语法错误呢?
因为它有内置处理。相当于在你没引用xsd时,隐式把相应的xsd文件套进来。

你可能感兴趣的:(xml命名空间解惑)