文档章节

Schema约束

H
 HoneyHoney
发布于 2015/06/09 19:16
字数 635
阅读 9
收藏 0

在继续之前你应对以下内容有基本了解:

  • HTML / XHTML

  • XML and XML Namespaces
    XML 和 XML 名称空间

  • A basic understanding of DTD
    对DTD有基本的了解


Schema约束

    XML Schema是以XML语言为基础的,它用于可替代DTD。

    一份XML schema文件描述了XML文档的结构。

    XML Schema语言也被称为XML Schema Definition (XSD)(XML Schema定义).         

            1:Schema(*.xsd)文件就是一个xml文件。(DTD不是一个xml文件)

            2:*.xsd文件,可以更加具体限制数据类型,出现的次数。


namespace - java包名。用于区分不同的类。namespace命名空间中,用于区分不同的元素.

<?xml version="1.0" encoding="UTF-8"?>
<users xmlns:a1="http://a.com" xmlns:a2="http://b.com" xmlns="http://c.com">
 <a1:user>
 </a1:user>
 <a2:dog />
 <jack/>
</users>

 

以下是用schema来约束xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<users>
 <user id="U002">
  <name>李四</name>
  <age>23</age>
 </user>
</users>

 

第一步:创建一个xsd文件

<?xml version="1.0" encoding="UTF-8"?>
<schema   //schema的根不能修改
  xmlns="http://www.w3.org/2001/XMLSchema"   - 默认的命名空间,这个命名空间来自于w3,这个命名空间,已经集成到了所有开发环境中

targetNamespace="http://www.example.org/users" - 用户可以修改的命名空间,用于做广播或是引用。
 xmlns:tns="http://www.example.org/users"- 和targetNamespace保持一致。

elementFormDefault="qualified" - 完全限定的名称

>
</schema>

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://xx.com"
 xmlns:tns="
http://xx.com" elementFormDefault="qualified">
 <!-- 定义根元素 -->
 <element name="users">
  <complexType>
   <sequence>
    <element name="user" maxOccurs="1" minOccurs="1">
     <complexType>
      <sequence>
       <element name="name" maxOccurs="1" type="string"
        minOccurs="1" />
       <element name="age" type="integer" maxOccurs="1"
        minOccurs="1" />
      </sequence>
      <attribute name="id" use="required" type="ID">

      </attribute>
     </complexType>
    </element>
   </sequence>
  </complexType>
 </element>
</schema>


第二步:在users.xml中引用这个*.xsd文件

<?xml version="1.0" encoding="UTF-8"?>
<users xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="
http://xx.com" xsi:schemaLocation="http://xx.com users.xsd">
 <user id="U002">
  <name>李四</name>
  <age>23</age>
 </user>
</users>


以下是完整的xsd约束:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://xx.com"
 xmlns:tns="http://xx.com" elementFormDefault="qualified">
 <!-- 定义根元素 -->
 <element name="users">
  <complexType>
   <sequence>
    <element name="user" maxOccurs="unbounded" minOccurs="1">
     <complexType>
      <sequence>
       <element name="name" maxOccurs="1" minOccurs="1">
        <simpleType>
         <restriction base="string">
          <minLength value="3"></minLength>
          <maxLength value="6"></maxLength>
         </restriction>
        </simpleType>
       </element>
       <element name="age" maxOccurs="1" minOccurs="1">
        <simpleType>
         <restriction base="integer">
          <minExclusive value="1"></minExclusive>
          <maxInclusive value="100"></maxInclusive>
         </restriction>
        </simpleType>
       </element>
      </sequence>
      <attribute name="id" use="required" type="ID">
      </attribute>
     </complexType>
    </element>
   </sequence>
  </complexType>
 </element>
</schema>

经下是引用这个xsd的CODE:

<?xml version="1.0" encoding="UTF-8"?>
<users xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="
http://xx.com" xsi:schemaLocation="http://xx.com users.xsd">
 <user id="U002">
  <name>李四1</name>
  <age>23</age>
 </user>
 <user id="U001">
  <name>李四2</name>
  <age>23</age>
 </user>
 <user id="U004">
  <name>李四weew</name>
  <age>100</age>
 </user>
</users>


© 著作权归作者所有

共有 人打赏支持
上一篇: XML--Jaxp-dom解析
下一篇: JDBC
H
粉丝 0
博文 21
码字总数 6313
作品 0
济南
私信 提问
XML的DTD和Schema约束

为什么要使用约束? XML是自定义的标签,有时候标签太多,记不住,所以就需要有约束来告诉我能写哪些标签,哪些标签写错了不能识别 XML中有哪几种约束? 有很多约束,其中DTD和Schema约束最为...

Lunqi
2015/08/11
0
0
Json-schema简介和应用

Json? 了解json schema首先要知道什么是json? json 是 JavaScript Object Notation 的缩写,它是一种简化的数据交换格式,是目前互联网服务间进行数据交换最常见的一种交换格式,具有简洁、...

城下秋草
08/14
0
0
Database、Table的所有约束

列出Database或Table的所有约束 很多时候我们想使用像 INSERT、UPDATE、DELETE 这样的DML命令。有时候因为某个表被设置约束,导致我们操作该表出现错。拿到一个新的数据库,如果不知道哪些表...

长平狐
2013/06/17
28
0
PostgreSql数据类型定义

1、表 由行和列组成,列的数量和顺序是固定的,每一个列都有一个名字,行是可变的-反映在给定某个时刻它所存储的数据。SQL不会保证表中行的顺序,当一个表被读时,这些行会出现在一个未指定的...

Rksi5
2014/03/31
0
0
Java程序员从笨鸟到菜鸟之(二十五)XML之Schema验证

XML Schema是用一套预先规定的XML元素和属性创建的,这些元素和属性定义了XML文档的结构和内容模式。XML Schema规定XML文档实例的结构和每个元素/属性的数据类型。 为什么要用Schema DTD 的局...

长平狐
2012/11/12
57
0

没有更多内容

加载失败,请刷新页面

加载更多

AS连接网易Mumu模拟器

1、安装模拟器 打开这个网址现在模拟器然后安装 http://mumu.163.com/ 2、安装完成后启动模拟器 3、进入模拟器安装目录 例如本机的安装目录:C:\Program Files (x86)\MuMu\emulator\nemu\vmo...

HGMrWang
28分钟前
7
0
设计要做到扩展性强还挺难的

概述 在日常开发中,有时候你的上司会跟你说,这个模块的设计扩展性要高。把这句话说出来很简单,但是要做到则非常难。导致难的其中一个因素是: 你不熟悉这个行业的业务的玩法 我举个例子来...

Sam哥哥聊技术
30分钟前
2
0
聊聊 scala 的模式匹配

一. scala 模式匹配(pattern matching) pattern matching 可以说是 scala 中十分强大的一个语言特性,当然这不是 scala 独有的,但这不妨碍它成为 scala 的语言的一大利器。 scala 的 patt...

终日而思一
32分钟前
1
0
Spring事物手动回滚

手动回滚: 方法1:在service层方法的catch语句中增加:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();语句,手动回滚,这样上层就无需去处理异常(现在项目的做法)...

寒风中的独狼
36分钟前
1
0
直角三角形的三角函数

sinA = a/c;A = asin(a/c); 特殊角度的三角函数值

一个小妞
44分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部