这几天重新温习了一下JAVA基础,发现对SCHEMA命名空间竟然还是不是很理解。我把理解的内容记录到这里做下参考。
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/01"
xmlns:tns="http://www.example.org/01"
elementFormDefault="qualified">
<complexType name="test"></complexType>
<element name="tt" type="tns:test"></element>
<element name="user">
<complexType>
<sequence>
<element name="id" type="int"/>
<element name="username" type="string"/>
<element name="born" type="date"/>
</sequence>
</complexType>
</element>
</schema>
疑问1:targetNamespace 是加载命名空间,xmlns也是加载命名空间。有什么区别?
xmlns 可以指定别名 如上:tns就是别名。当此XSD文件里需要定义新的元素的时候,可以指定是来自那个命名空间。如上:type="tns:test"
targetNamespace 是定义当前文件的命名空间,当其他XML文件需要引用这个XSD时,我们需要在XML文件中加入xsi:schemaLocation="http://www.example.org/01",这样才能使用我们编辑好的XSD文件。