本文主要介绍xml和xml的一些基本用法,以及xml的约束,希望对新手有用。
1.xml的介绍和基本用法
xml指可扩展标记语言,xml被设计用来传输和存储数据,xml不是对html的替代,而是对html的补充,但是在开发中现在最常用的传输数据的格式是json。xml还可以用于配置文件的设置。
xml和html非常的相似,标签又开始就有结束,还有“自闭标签”,但是在标签中无法使用空格和冒号,xml对大小写敏感,良好的xml格式必须有一个根元素(父元素)
在xml中,有5个预定义的实体引用:
当大量的转义字符出现在xml文档中时,会使xml文档的可读性降低,使用CDATA区会更好一点,在CDATA区中出现的一些字符都无需转义字符,但是CDATA段中不能包含“]]>”,即CDATA段的结束界定符。CDATA区的使用格式如下:
2.xml的约束
(1)DTD约束(document type definition 文档类型定义)
引用DTD文件:
元素声明:
元素描述:
? 表示该对象可以出现,但只能出现一次或零次
* 表示该对象允许出现任意多次,也可以是零次
+ 表示该对象最少出现一次,可以出现多次
() 用来给元素分组
| 表明在列出的对象中选择一个
, 表示对象必须按指定的顺序出现
属性声明:
约束文档例子:
<!ELEMENT web-app (servlet*,servlet-mapping* , welcome-file-list?) >
<!ELEMENT servlet (servlet-name,description?,(servlet-class|jsp-file))>
<!ELEMENT servlet-mapping (servlet-name,url-pattern+) >
<!ELEMENT servlet-name (#PCDATA)> //#PCDATA表示文本内容
<!ELEMENT servlet-class (#PCDATA)>
<!ELEMENT url-pattern (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT jsp-file (#PCDATA)>
<!ELEMENT welcome-file-list (welcome-file+)>
<!ELEMENT welcome-file (#PCDATA)>
<!ATTLIST web-app version CDATA #IMPLIED> //这个是属性声明 #IMPLIED表示属性为可选
实例文档例子:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name></servlet-name>
<servlet-class></servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
</servlet-name>
<url-pattern></url-pattern>
</servlet-mapping>
</web-app>
(2)Schema约束
schema约束是新的xml文档约束,数据类型更加完善。本身也是xml文档,但是文件扩展名为xsd,支持名称空间。注意注意注意!!!!!!下面注释用的符号 “//” 并不是xml文档里面的注释用法,只是为了简单的说明一下,不要被我误导了。
schema约束文档:
xmlns="http://www.w3.org/2001/XMLSchema" //表示引入w3c预定义的名称空间
targetNamespace="http://www.example.org/web-app_2_5" //自定义一个名称空间
根标签用<xsd:schema> </xsd:schema>
xml实例文档:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" //表示引入w3c的实例文档
xsi:schemaLocation="http://www.example.org/web-app_2_5 web-app_2_5.xsd"
//表示引入自定义的名称空间
约束文档例子:
<xsd:element name="web-app">
<xsd:complexType>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="servlet">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="servlet-name"></xsd:element>
<xsd:element name="servlet-class"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="servlet-mapping">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="servlet-name"></xsd:element>
<xsd:element name="url-pattern" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="welcome-file-list">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="welcome-file" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<xsd:attribute name="version" type="double" use="optional"></xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:schema>
实例文档例子(xml文档):
<?xml version="1.0" encoding="UTF-8"?>
<!--引入W3C实例文档 -->
<!-- 引入本地文档的所在位置 -->
<web-app xmlns="http://www.example.org/web-app_2_5"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/web-app_2_5 web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name></servlet-name>
<servlet-class></servlet-class>
</servlet>
<servlet-mapping>
<servlet-name></servlet-name>
<url-pattern></url-pattern>
</servlet-mapping>
</web-app>
PS:一般来说知道约束文档里面的标签就好了,在开发中约束文档会给你的。应该不用自己编写。