xml的应用和解析

    xiaoxiao2022-07-13  163

    一、xml的dtd限制和应用

    DTD限制servlet相关标签 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app[ <!ELEMENT web-app ( display-name,welcome-file-list,servlet,servlet-mapping)> <!ELEMENT servlet (servlet-name,servlet-class)> <!ELEMENT servlet-mapping (servlet-name,url-pattern)> <!ELEMENT servlet-name (#PCDATA)> <!ELEMENT servlet-class (#PCDATA)> <!ELEMENT url-pattern (#PCDATA)> <!ATTLIST web-app xmlns:xsi CDATA #REQUIRED xmlns CDATA #IMPLIED xsi:schemaLocation CDATA #IMPLIED id CDATA #IMPLIED version CDATA #IMPLIED > ]> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>Xml</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>IndexServlet</servlet-name> <servlet-class>com.IndexServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>IndexServlet</servlet-name> <url-pattern>/index.do</url-pattern> </servlet-mapping> </web-app> 什么是格式良好且有效的XML

    文档必须有根元素,有且只有一个根元素

    元素定义的语法 <!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特征 :纯文本 、严格的格式、可扩展(标记可扩展)。

    二、Schema的应用

    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解析

    最新回复(0)