xml的schema约束(Java)
1.schema约束
*dtd语法:<!ELEMENT 元素名称 约束>
schema符合xml的语法,是xml语句。
一个xml文件中可以有多个schema,多个schema使用名称空间来区分(类似于java中的包),而一个xml文件中只能有提个dtd。
dtd中有PCDATA类型,而在schema中支持多种数据类型,比如,年龄只能是一个整数,在schema中可以直接定义一个整数类型。
schema语法更加复杂,目前不能代替dtd。
person.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.example.org/schema"
xsi:schemaLocation="http://www.example.org/schema schema.xsd" id1="123">
<name>宝娟</name>
<age>20</age>
<school>**大学**</school>
</person>
<!--
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance":表示是一个被约束文件
xmlns="http://www.example.org/schema":约束文件里的targetNamespace
:xsi是一个随便起的别名,为了区分开二者同名。
xsi:schemaLocation="http://www.example.org/schema schema.xsd">:
targetNamespace 空格 约束文档的路径
-->
2.schema快速入门
*创建一个schema文件,它的后缀名为 .xsd
schema.xsd
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/schema"
xmlns:tns="http://www.example.org/schema"
elementFormDefault="qualified">
<element name="person">
<complexType>
<sequence>
<element name="name" type="string" maxOccurs="unbounded"></element>
<element name="age" type="int"></element>
<element name="school" type="string"></element>
</sequence>
<attribute name="id1" type="int" use="required"></attribute>
</complexType>
</element>
</schema>
<!-- 约束
在schema文件里:
属性:xmlns="http://www.w3.org/2001/XMLSchema"表示当前xml文件是一个约束文件
targetNamespace="http://www.example.org/schema":使用schema文件时,直接通过这个地址引入约束文件。
elementFormDefault="qualified":表示质量良好的。
1.看xml中有多少个元素,就对应在schema文件中有多少个<element></element>
2.判断简单元素/复杂元素
* 复杂元素:
<element name="person">
<complexType>
<sequence>
子元素
</sequence>
</complexType>
</element>
* 简单元素:写在
<sequence>
简单元素
</sequence>
** <sequence>表示元素出现的次序必须一致
<all>:元素只能出现一次
<choice>:元素只能出现其中的一个
maxOccurs="unbounded":表示元素出现的次数
<any></any>:表示任意元素 **
属性约束:只能用于复杂元素,所放的位置如下:
</sequence>
<attribute name="id1" type="int" use="required"></attribute>
</complexType>
*****以上所有语句,属性type之前必须要有"空格"。如果没有的话,会报错。
*****多个schema约束具体可以去查看文档。
-->
xml的schema约束(Java)的更多相关文章
- xml语法、DTD约束xml、Schema约束xml、DOM解析xml
今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的ht ...
- XML的Schema约束
XSD文档至少要包含:schema根元素和XML模式命名空间的定义.元素定义.需要注意的是XSD中必须定义一个且只能定义一个schema根元素,根元素中包括模式的约束,XML模式命名空间的定义,其他命 ...
- Spring学习----- Spring配置文件xml文档的schema约束
1.配置文件示例. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="htt ...
- 关于Spring配置文件xml文档的schema约束
最开始使用spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. <?xml version=&q ...
- XML DTD跟SCHEMA约束 语法了解
dtd语法 元素: <!Element 元素名称 数据类型|包含内容> 数据类型: #PCDATA:普通文本 使用的时候一般用()引起来 包含内容: 该元素下可以出现哪些元素, 用()引起 ...
- Spring中xml文档的schema约束
最开始使用Spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. <?xml version= ...
- XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax
本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...
- JAVA企业级开发-xml基础语法&约束&解析(04)
一.什么是xml html:超文本标记语言.它主要是用来封装页面上要显示的数据,最后通过浏览器来解析html文件,然后把数据展示在浏览器上.同样我们可以使用JS和DOM技术对html文件进行解析和操作 ...
- XML约束——Schema约束
XML Schema 也是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性 XML Schema VS DTD: •XML Schema符合XML语法结构. • ...
随机推荐
- overflow:hidden的用法
overflow:hidden是大家常用到的CSS样式,但是大多数人对这个样式的理解仅仅局限于隐藏溢出,而对于清除浮动这个含义不是很了解. <%@ Page Language="C#& ...
- 【Linux】文本编辑器Vim常用操作入门
Linux常用文本编辑器:Vi & Eamcs Vim -- Vi的升级版本 Vim 一.3种工作模式 命令行模式 (Command Mode) 插入模式 (Insert Mode) -- 键 ...
- Android应用开发详解
目录结构 1.Android概述 2.Android开发基础 未完待续……
- 快速开始Python/WSGI应用程序
快速开始Python-wsig应用程序 官方参考文档 安装 uwsgi 安装 pip install uwsgi uwsgi --version # 查看 uwsgi 版本 测试 uwsgi 是否正常 ...
- python大数据
http://blog.csdn.net/xnby/article/details/50782913 一句话总结:spark是一个基于内存的大数据计算框架, 上层包括了:Spark SQL类似Hive ...
- Microsoft Translator:打破语言障碍 拓展全球沟通新机遇
作者:Olivier Fontana, 微软研究院Microsoft Translator产品战略总监 世界越来越小,全球协作.共同创新已经成为常态.在微软研究院,我们对此尤为感同身受——从北京到雷德 ...
- SpringBoot热部署插件
1.配置在 maven工程中的pom.xml文件中 2.SpringBoot框架中提供的一个热部署插件,利用该热部署插件,我们可以在修改代码后不用重启应用,大大提高开发效率:
- oracle_procedure
define: 存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句 集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它. ...
- 用python管理Cisco路由器
目前DevOps是整个运维发展的方向,Network的运维也一样.使用程序控制底层的路由器是最基本的要求之一. 本文简单解释如何用Python控制路由器,对网络设备进行配置. Python和网络设备连 ...
- 一点一点学写Makefile(4) - 编译时指定宏参数
我们在项目中有时为了方便会自定义一些与项目无关的功能,例如打印输出一些提示信息.将关键协议生成文件等,但是如果每次都通过修改代码的方法来实现,测试部门就会认为你改的这些代码可能会带来其他问题.对于这种 ...