文档章节

Schema约束

H
 HoneyHoney
发布于 2015/06/09 19:16
字数 635
阅读 6
收藏 0
点赞 0
评论 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>


© 著作权归作者所有

共有 人打赏支持
H
粉丝 0
博文 21
码字总数 6313
作品 0
济南
XML的DTD和Schema约束

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

Lunqi
2015/08/11
0
0
Database、Table的所有约束

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

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

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

Rksi5
2014/03/31
0
0
javaWeb 之 XML基础(二)

一、XML约束模式->纲要 ● 格式良好的(Well-formed)XML ● XML的约束模式 ● XML约束模式语言 ● 有效的(Valid)XML 1、格式良好的(Well-formed)XML ● 计算机程序在处理XML文档之前,首...

oYo字节
2014/03/10
0
0
sysobjects的表结构

在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。 name sysname 对象名。 Id int 对象标识号。 xtype ch...

吞吞吐吐的
2017/10/18
0
0
XML之XML Schema

XML Schema通过增加更多的数据类型和结构模式来改进DTD,在研究XML Schema的结构模式之前,我们先看看典型的XML Schema根元素: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"...

柳哥
2015/01/13
0
0
Java程序员从笨鸟到菜鸟之(二十五)XML之Schema验证

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

长平狐
2012/11/12
57
0
SQL2000系统表、存储过程、函数的功能介绍及应用

----系统表-------------------------------------------------------------------------------------- 虽然使用系统存储过程、系统函数与信息架构视图已经可以为我们提供了相当丰富的元数据...

springfe
2008/05/28
0
0
XML Schema 简介

XML Schema 与DTD(DTD语法概述)一样,也是对一类XML文档进行约束、确定其结构,元素、属性、及数据类型。及XML文档中所使用的元素,实体,元素的属性,元素与实体之间的关系的约束。XML S...

小步2013
2008/03/29
0
0
【MySQL】了解MySQL中的information_schema

大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个informationschema数据库。 informationschema数据库是做什么用的呢,使用WordPress博客的朋友可能会想,是不是安装模板...

磊神Ray
2012/11/28
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对基于深度神经网络的Auto Encoder用于异常检测的一些思考

一、前言 现实中,大部分数据都是无标签的,人和动物多数情况下都是通过无监督学习获取概念,故而无监督学习拥有广阔的业务场景。举几个场景:网络流量是正常流量还是攻击流量、视频中的人的...

冷血狂魔
16分钟前
0
0
并发设计之A系统调用B系统

A-->B A在发送请求之前,用乐观锁,减少对B的重复调用,这样一定程度上是幂等性。 比如A系统支付功能,要调用B系统进行支付操作,但是前端对"支付"按钮不进行控制,即用户会不断多次点击支付...

汉斯-冯-拉特
37分钟前
0
0
HTTP协议通信原理

了解HTTP HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务。 HTTP使用...

寰宇01
今天
0
0
【Java动态性】之反射机制

一、Java反射机制简介

谢余峰
今天
1
0
Centos 6.X 部署环境搭建

1.Linux学习笔记CentOS 6.5(一)--CentOS 6.5安装过程

IT追寻者
今天
0
0
博客即同步至腾讯云+社区声明

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=8vy9bsmadbko...

xiaoge2016
今天
1
0
大数据教程(3.1):Linux系统搭建网络YUM源服务器

博主在前面的2.5章节讲述了linux系统本地YUM服务器的搭建和httpd轻量级静态网站服务器的安装,本节博主将为大家分享内网环境中搭建自己的网络YUM服务器的全过程。如果大家对本地YUM服务器还不...

em_aaron
今天
1
0
蚂蚁技术专家:一篇文章带你学习分布式事务

小蚂蚁说: 分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在这几年越来越火的微服务架构中,几乎可以说是无法避免,本文就围绕分布式事务...

Java大蜗牛
今天
1
0
新的Steam应用将拓展服务项目

导读 未来几周,Steam将推出两个免费的应用程序Steam Link和Steam Video。这两个应用程序都旨在拓展Steam平台的业务和便利性。 即将开放的Steam Link应用程序最先提供了Android测试版,它将允...

问题终结者
今天
0
0
golang 第三方包的使用总结

golang 第三方包的安装的方法: 1. go get 安装 $ go get github.com/gin-gonic/gin 注意:执行go get 命令需要先安装git命令,并配置git全局变量。 2. 源码包安装 由于国内网络问题,很多时...

科陆李明
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部