标签:
命名空间的概念:类似java中的包。命名空间即元素的命名的一个区间。该区间可以指定名字也可以使用默认的名字。
那么如果要使用Schema编写代码来约束XML文件,那么Schema中必须预先的定义好约束的标签名。但是这些标签又不同于普通的标签因此需要指定命名的空间名。
xmlns:xs="http://www.w3.org/2001/XMLSchema"
该元素是一个属性,该属性必须出现在约束文件的根元素中。
u 引入约束文件(重点)
<书架 xmlns:jnb="http://www.jnb.com">
来指定6中的schemaLocation来自的区域
u DTD基本语法(了解)
语法:
<xs:element name="xxx" type="yyy"/> name 指定元素名 type 指定元素类型 常用的元素类型: xs:string 字符串 xs:decimal 小数 xs:integer 整数 xs:boolean 布尔 xs:date 日期 xs:time 时间
举例1:描述一个元素为小数类型
<xs:element name=‘售价‘ type="xs:decimal" />
语法:
<xs:element name="xxx" type="yyy"> <xs:attribute name="xxx" type="yyy"/> </xs:element> name 指定属性名 type 指定属性类型 常用的元素类型: xs:string 字符串 xs:decimal 小数 xs:integer 整数 xs:boolean 布尔 xs:date 日期 xs:time 时间
举例2:给书添加一个isbn的属性。
<xs:attribute name="isbn" type="xs:string" use="required"/>
一般限定的是元素取值的一个范围。如下:
<xs:element name="age"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="120"/> </xs:restriction> </xs:simpleType> </xs:element> 举例3:限定售价的值在0~120之间。 <xs:element name="售价"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="120"/> </xs:restriction> </xs:simpleType> </xs:element>
4. 复杂类型定义
有四种类型的复合元素:
空元素 带属性
包含其他元素的元素 带属性
仅包含文本的元素 带属性
包含元素和文本的元素 本身就是
复杂类型元素的定义语法
<xs:element name="employee"> ? 定义元素 <xs:complexType> ? 定义复杂类型 <xs:sequence> ? 定义以顺序的方式显示 <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
5. 混合类型数据定义
<xs:element name="letter"> <xs:complexType mixed="true"> ? 既有元素又有文本。如: DTD中的ANY <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="orderid" type="xs:positiveInteger"/> <xs:element name="shipdate" type="xs:date"/> </xs:sequence> </xs:complexType> </xs:element>
顺序指示器
<xs:element name="person"> <xs:complexType> <xs:sequence> ? 包含的元素师按照顺序出现的 <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> 次数指示器 <xs:element name="child_name" type="xs:string" maxOccurs="10"/>
1. 编写一个已有的xsd文件shiporder.xsd <?xml version="1.0" encoding="ISO-8859-1" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="shiporder"> <xs:complexType> <xs:sequence> <xs:element name="orderperson" type="xs:string"/> <xs:element name="shipto"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="address" type="xs:string"/> <xs:element name="city" type="xs:string"/> <xs:element name="country" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="item" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="title" type="xs:string"/> <xs:element name="note" type="xs:string" minOccurs="0"/> <xs:element name="quantity" type="xs:positiveInteger"/> <xs:element name="price" type="xs:decimal"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="orderid" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:schema> 2. 实现根元素的属性引入 <?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.jnb.com" elementFormDefault="qualified"> 3. 实现有效的xml文件shiporder.xml <?xml version="1.0" encoding="UTF-8"?> <jnb:shiporder orderid="001" xmlns:jnb="http://www.jnb.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jnb.com shiporder.xsd"> <jnb:orderperson></jnb:orderperson> <jnb:shipto> <jnb:name></jnb:name> <jnb:address></jnb:address> <jnb:city></jnb:city> <jnb:country></jnb:country> </jnb:shipto> <jnb:item> <jnb:title></jnb:title> <jnb:note></jnb:note> <jnb:quantity></jnb:quantity> <jnb:price></jnb:price> </jnb:item> </jnb:shiporder> ? 多学一招:思考集成开发环境中的web.xml文件配置的信息提示是如何实现的? <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ? 引入Schema约束 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
标签:
原文地址:http://www.cnblogs.com/zhenghongxin/p/4329729.html