文档章节

Schema约束

H
 HoneyHoney
发布于 2015/06/09 19:16
字数 635
阅读 11
收藏 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 的缩写,它是一种简化的数据交换格式,是目前互联网服务间进行数据交换最常见的一种交换格式,具有简洁、...

城下秋草
2018/08/14
0
0
不如自己写一个 schema 类库吧

这篇文章里没有过多的技巧和经验,记录的是一个想法从诞生到实现的过程 背景需求 在上一篇文章 构建大型 Mobx 应用的几个建议 中,我提到过使用 schema 来约定数据结构。但遗憾的事情是,在浏...

李熠
01/14
0
0
PostgreSql数据类型定义

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

Rksi5
2014/03/31
0
0
Database、Table的所有约束

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

长平狐
2013/06/17
150
0

没有更多内容

加载失败,请刷新页面

加载更多

Cookie 显示用户上次访问的时间

import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.serv......

gwl_
今天
1
0
网络编程

第14天 网络编程 今日内容介绍  网络通信协议  UDP通信  TCP通信 今日学习目标  能够辨别UDP和TCP协议特点  能够说出UDP协议下两个常用类名称  能够说出TCP协议下两个常用类名称...

stars永恒
今天
1
0
二进制相关

二进制 众所周知计算机使用的是二进制,数字的二进制是如何表示的呢? 实际就是逢二进一。比如 2 用二进制就是 10。那么根据此可以推算出 5的二进制等于 10*10+1 即为 101。 在计算机中,负数以...

NotFound403
昨天
3
0
day22:

1、写一个getinterface.sh 脚本可以接受选项[i,I],完成下面任务: 1)使用格式:getinterface.sh [-i interface | -I ip] 2)当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项...

芬野de博客
昨天
2
0
Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注。虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭借阿里中间件团队的背景,还是得到不少...

程序猿DD
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部