文档必须有根元素,有且只有一个根元素
元素定义的语法 <!ELEMENT element-name (type)> 注:根标签也要定义!!!XML标签大小写正确区分
正确使用结束标签,文档必须有关闭标签
正确嵌套标签,元素必须被正确的嵌套
使用了合法的标签名
定义有效的属性 元素的分类
<!ELEMENT element-name EMPTY>//空元素 <!ELEMENT element-name (#PCDATA)>//文本元素 <!ELEMENT element-name (e1,e2)>//混合元素 属性定义的语法 #REQUIRED #IMPLIED DTD限制xml文档 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE config [ <!ELEMENT config (action*)> <!ELEMENT action (forward*)> <!ATTLIST action path CDATA #REQUIRED type CDATA #IMPLIED > <!ATTLIST forward name ID #REQUIRED path CDATA #REQUIRED redirect (true|false) 'true' > ]> <!-- config标签:可以包含0~N个action标签 --> <config> <!-- action标签:可以饱含0~N个forward标签 path:以/开头的字符串,并且值必须唯一 非空 ,子控制器对应的路径 type:字符串,非空,子控制器的完整类名 --> <action path="/registerAction" type="test.action.RegisterAction"> <forward name="success" path="/index.jsp" redirect="true" /> <forward name="failed" path="/register.jsp" redirect="false" /> </action> <action path="/loginAction" type="test.action.LoginAction"> <forward name="a" path="/index.jsp" redirect="false" /> <forward name="b" path="/welcome.jsp" redirect="true" /> </action> </config> xml的解析 XML(eXtensive Markup Language)可扩展的标记语言,是万维网联盟(World Wide Web Consortium W3C)定义的一种标准。 可扩展性指允许用户按照XML规则自定义标记(tags 标签)。作用: 作为微型数据库,存储数据; 作为通信数据; 用于不同平台,不用系统交换数据; 作为配置文件,为应用程序配置数据; 结合样式表语言,展示数据。强项:轻松表达多层结构的数据;可扩展。优点:平台无关,语言无关。设计目标是描述数据并集中于数据的内容,与显示分离。提醒:不能用XML来直接写网页。即便是包含了XML数据,依然要转换成HTML格式才能在浏览器上显示。xml特征 :纯文本 、严格的格式、可扩展(标记可扩展)。
XML Schema介绍
XML Schema用来描述 XML 文档的结构 ,定义XML文档中合法的内容块 ;XML Schema优于DTD,是DTD的替代品;XML Schema文件以.xsd作为文件扩展名 ;XML Schema在2001年5月2日成为W3C标准;Schema本生也是特殊的XML;XML Schema文档结构 简单类型(元素,属性,Facet)、复杂类型元素、匿名类型、外置类型。
<xs:element name=“元素名” type=“元素类型"/>Schema内置了很多类型,常用的类型有:
xs:string 字符串; xs:decimal 浮点型; xs:integer 整型; xs:boolean 布尔型; xs:date 日期; xs:time 时间;xs:是命名空间前缀,元素的默认值用属性default指定,例:
<xs:element name=“color” type=“xs:string” default=“red”/>
元素的固定值用属性fixed指定,例:
<xs:element name=“color” type=“xs:string” fixed=“red”/>
元素出现的次数用属性minOccurs、maxOccurs来表示,默认值为1,unbounded表示不限制次数,例:
<xs:element name=“comment” type=“xs:string” minOccurs=“0”/> <xs:element name=“item” type=“xs:string” minOccurs=“99” maxOccurs=“unbounded”>
属性声明语法:
<xs:attribute name=“属性名” type=“属性类型"/>
属性声明通常会出现在元素声明中,Schema的内置类型同样对属性类型有效,属性的默认值用属性default指定;
<xs:attribute name=“gender" type=“xs:string” default=“male"/>
属性的固定值用属性fixed指定:
<xs:attribute name=“gender" type=“xs:string” fixed=“male"/>
属性必须或可选性用属性use指定:
<xs:attribute name=“gender" type=“xs:string” use=“required"/>
use属性值的取值有: optional(默认值)(可有可没有), required(必须有), prohibited(禁止,很少用)。
Facet(刻面):对xml元素或属性的简单数据类型进一步约束
限制字符串的长度, 包括 (length、minLength、maxLength) ;限制整数的大小范围,包括 (minInclusive, maxInclusive, minExclusive, maxExclusive) ;限制元素内容的枚举取值(enumeration);限制浮点型数值的位数(totalDigits, fractionDigits) ;定义在下列元素中:
<xs:simpleType> <xs:restriction> (此处写Facet) </xs:restriction> </xs:simpleType>复杂类型元素:包含其他元素和文本或属性的 XML 元素,语法:
使用元素 xs:complexType/ 来定义
四种类型的复杂元素:只包含属性、只包含属性和子元素、只包含文本内容和属性、包含属性,子元素和文本内容。
只包含属性 :
<xs:element name=‘blank’> xs:complexType <xs:attribute name=‘base’ type=‘xs:integer’ use=‘optional’ default=‘10’/> </xs:complexType> </xs:element>
只包含属性和子元素:
<xs:element name=‘customer’> xs:complexType xs:sequence <xs:element name=‘favor’ type=‘xs:string’/> </xs:sequence> <xs:attribute name=‘age’ type=‘xs:integer’/> </xs:complexType> </xs:element>
xml的简介
xml的约束 xml解析