参考:https://blog.csdn.net/zhch152/article/details/8191377
前提科普:DTD 文档类型定义(Document Type Definition)
问题的出现:XML的元素名字是不固定的,当两个不同的文档使用同样的名称描述不同的内容的时候,就会发生命名冲突。
问题的解决:命名空间(Namespace),有点类似Java中包的作用,给它取个全名)。就知道这标签是从哪里来的!
在XML中,采用现成的,在全球范围唯一的“域名”作为Namespace,即URL作为XML的Namespace。
命名空间的语法:xmlns:[prefix]=”[url of name]”
其中“xmlns:”是必须的属性。“prefix”是命名空间的别名,它的值不能为xml。
<sample xmlns:ins=”http://www.lsmx.net.ac”>
<ins:batch-list>
<ins:batch>Evening Batch</ins:batch>
</ins:batch-list>
</sample>
值得注意的是batch-list,batch等标记必须在"http://www.lsmx.net.ac"中定义,"http://www.lsmx.net.ac"的别名为ins。
默认Namespace xmlns=”[url of namespace]”
-------------------
注意:
一,指定了父元素的命名空间,子元素希望用自己的命名空间,可以在子元素中指定命名空间的别名。????长啥样啊
二、属性也可以有自己的命名空间
----------------
xsi:schemaLocation ---指出模式文档的位置
xsi:noNamespaceSchemaLocation ---指出模式文档的位置
----------------
例子
<?xml version="1.0" encoding="GB2312"?>
<book xmlns="http://www.sunxin.org/book" ①
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ②
xsi:schemaLocation="http://www.sunxin.org/book http://www.sunxin.org/
book.xsd"> ③
<title>《Struts 2深入详解》</title>
<author>孙鑫</author>
</book>
-------------------
<?xml version="1.0" encoding="GB2312"?>
<book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="book.xsd"
isbn="978-7-121-06812-6" >
<title>《Struts 2深入详解》</title>
<author>孙鑫</author>
</book>
DTD教程 http://www.w3school.com.cn/dtd/
Schema 教程 http://www.w3school.com.cn/schema/index.asp