XML简单学习
XML简单概述
1.Extensible Markup language可扩展标记语言;
2.作用:具有层次性的描述有关系的数据;
体现在:描述数据关系;软件配置,以描述程序模块之间的关系;
语法介绍
1.文档声明:
<?xml version="1.0" encoding="utf-8" ?>
注意编码的统一性 储存在内存中的编码格式,与解析器打开的两者统一
2.元素:element
成对标签 <label>pcdata</lable>
元素属性 也可以理解或写成子元素;对XML标签中出现的所有空格和换行,XML解析程序都会当做是标签内容处理
3.注释:
<!-- 局部注释 -->
<!--
...大段注释
...
-->
4.不解析的部分:当做原始内容直接输出
<![CDATA[内容]]>
5.处理指令:
用来指挥解析器如何解析文档的内容,如:xml文档中可以用xml-stylesheet指令来通知xml解析引擎,引用css文件来显示xml文档内容:
<? xml-stylesheet type="text/css" href="1.css"?>
------------------简单例子--------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/css" href="style.css"?>
<menu>
<!--this is a menu-->
<![CDATA[
with it was;
]]> <vegetables>
<name>
蔬菜
</name>
<vegetable>
<cabbage>白菜</cabbage>
<carrot>萝卜</carrot>
</vegetable> </vegetables> <fruits>
<name>
水果
</name>
<fruit>
<apple>苹果</apple>
<banana>香蕉</banana>
</fruit>
</fruits> </menu>
XML的dtd约束
1.约束---> 编写来约束其书写规范
dtd文件:document type definition,写一个文档来约束xml文档的元素组成,规定其书写 .dtd后缀名;
2.元素类型:element
<!ELEMENT 约束元素名(子属性,,,)>
在XML文件中如何引入:
<!DOCTYPE 文档根节点 SYSTEM "dtd文件.dtd">
3.元素属性说明 attribute
<!ATTLIST 元素名
属性名 属性值类型 设置说明
属性名 属性值类型 设置说明
>
如:
<!ATTLIST 商品
类别 CDATA #REQUIRED
颜色 #IMPLIED
>
1.设置说明
REQUIRED 必须有此属性,
IMPLIED 可有可不有
FIXED 属性固定值
默认值
2.属性值类型:id ,enumerated ,entity, cdata
.............
实体定义:为一段内容创建一个别名,以后可以用此别名来在文档中代替原来内容,
引用实体:在xml文档中被引用,
<!ENTITY 实体名称 "引用实体内容">
参数实体:在dtd文件中被引用可以做到复用的作用
!ENTITY % 实体名称 "参数实体内容">
3.为了清除的看到DTD对有其引入的XML文件进行约束,可在MyEclipse自动检测
<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY % has "yes|no|true|false">
<!ENTITY blank "[ ]">
<!ENTITY % common-attributes
"name CDATA #REQUIRED
id ID #REQUIRED
price CDATA #REQUIRED
description CDATA #IMPLIED
has (%has;) #REQUIRED"
> <!ELEMENT goods (clothes*,shoes?)>
<!ATTLIST goods shop-name CDATA #REQUIRED> <!ELEMENT clothes (jean*,shirt*)>
<!ELEMENT jean (#PCDATA)>
<!ELEMENT shirt (#PCDATA)> <!ATTLIST jean %common-attributes;>
<!ATTLIST shirt %common-attributes;>
goods.dtd
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE goods SYSTEM "goods.dtd">
<goods shop-name="best">
<clothes>
<jean has="no" name="jean1" price="111" id="jean1"></jean>
<jean has="yes" name="33" price="33" id="jean2"></jean>
<shirt has="yes" name="hehe" price="0.0" id="ee">␣</shirt>
</clothes> </goods>
goods.xml
XML的schema约束
--是一种定义和描述xml文档结构和内容的模式语言,其出现是为了克服dtd的局限性;
1.VS DTD:
1 符合xml语法格式
2 Dom,sax XmlAPI很容易解析出XML Schema中的内容
3 约束强大,更多数据类型,还可以定义自己的数据类型
4 当不能定义实体,有自己的方式。
2.语法简介:命名空间的引入,、
1.simpleType元素 约束
元素:<xs:element name="ElementName" type="DataTypeOfElement">
---DataTypeOfElement
xs:string
xs:decimal
xs:integer
xs:boolean
xs:date
xs:time
属性:<xs:attribute name="attributeName" type="attributeValueType">
属性值说明包括:默认default 指定fixed 必选required
元素限定:
限定的类型基于:
<xs:restriction base="xs:string/integer/boolean/date/time/decimal">
限定的内容or:maxInclusive minInclusive enumeration、,,,
<xs:minInclusive value="0"/>
<xs:maxInclusive value="110"/>
<xs:enumeration value="apple"/>
<xs:enumeration value="banana"/>
<xs:pattern value="[A-Z][A-Z][A-Z]"/>
</xs:restriction>
类似实体的复用:
<xs:element name="name" type="nameValue"/>
<xs:simpleType name="nameValue">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z0-9]{8}"/>
</xs:restriction>
</xs:simpleType>
2.复杂元素的 约束:合元素指包含其他元素及/或属性的 XML 元素。
<xs:complexType> 、、</xs:complexType>
<xs:sequence> </xs:sequence>
等等........
3.类型指示器:
Order:all choice Sequence
Occurrence:Maxoccur minoccur
Group:Group name attributeGroup name
3.简例:
<?xml version="1.0" encoding="UTF-8"?> <!--
xmlns="http://www.w3.org/2001/XMLSchema
来自外界的命名空间,
是否默认来确定是否有书写当前模式文件的前缀命名
targetNamespace="http://www.example.org/letter"
自身作为其他xml目标文件约束的命名空间 -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/letter"
elementFormDefault="qualified">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string" />
<xs:element name="from" type="xs:string" />
<xs:element name="heading" type="xs:string" />
<xs:element name="body" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!--
xmlns="default namespace"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="{namespace} {location}"
-->
<note xmlns="http://www.example.org/letter"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/letter letter.xsd"
>
<to>逗B</to>
<from>猴子</from>
<heading>呵呵</heading>
<body>呵呵呵呵</body>
</note>
XML简单学习的更多相关文章
- LINQ to XML LINQ学习第一篇
LINQ to XML LINQ学习第一篇 1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: public static void CreateDoc ...
- Android] Android XML解析学习——方式比较
[Android] Android XML解析学习——方式比较 (ZT) 分类: 嵌入式 (From:http://blog.csdn.net/ichliebephone/article/deta ...
- XML语言学习随笔
XML和HTML都是W3C的定制的标准,XML的诞生本身是为了替代不成熟的HTML,但是因为现实的环境,XML替代HTML并未成功.之后W3C为了代码严谨性的决心,又发布了升级版的标记语言XHTML, ...
- 简单学习一下ibd数据文件解析
来源:原创投稿 作者:花家舍 简介:数据库技术爱好者. GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 简单学习一下数据文件解析 这是尝试使用Golang语言简单解析My ...
- Log4j简单学习笔记
log4j结构图: 结构图展现出了log4j的主结构.logger:表示记录器,即数据来源:appender:输出源,即输出方式(如:控制台.文件...)layout:输出布局 Logger机滤器:常 ...
- mybatis-config.xml简单笔记
mybatis-config.xml简单笔记 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ...
- applicationContext.xml简单笔记
applicationContext.xml简单笔记 <?xml version="1.0" encoding="UTF-8"?> <bean ...
- spring-servlet.xml简单示例
spring-servlet.xml简单示例 某个项目中的spring-servlet.xml 记下来以后研究用 <!-- springMVC简单配置 --> <?xml versi ...
- xml基础学习笔记05
Xpath快速解析 如题一样,本篇主要说说Xpath快速查找XML文档 * Xpatn.Xquery,是专门用来查询xml的语言 * 查询xml非常快 Xpatn.Xquery,是专门用来 ...
随机推荐
- docker学习笔记-1
docker学习笔记一:安装 mac安装docker docker官方文档上有这么一段话: Because the Docker daemon uses Linux-specific kernel f ...
- VS2013编译boost1.55库
1. 官网下载最新的Boost库,我的是1.55 2. 在使用vs2013编译boost-1.55.0之前,先要给boost做下修改: boost_1_55_0\boost\intrusive\det ...
- 算法笔记_057:蓝桥杯练习 最大的算式 (Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大.因为乘号和加号一共就 ...
- mysql,给每一条数据的某一个字段生成不同的随机数
UPDATE t_article ta-- 利用LEFT JOIN的方式进行关联修改 LEFT JOIN(-- 先通过查询的方式给每一条数据生成对应的10-500之间随机数 SELECT articl ...
- Linux 系统目录结构(转)
登录系统后,在当前命令窗口下输入命令: ls / 你会看到如下图所示: 树状目录结构: 以下是对这些目录的解释: /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令. /boo ...
- 利用docker创建支持centos的ssh镜像
创建docker镜像需要基础镜像,目前官方已提供了多种基础镜像,参见: https://hub.docker.com/explore/ 要想创建支持centos的ssh镜像,就需要以centos镜像为 ...
- jQuery Accordion 插件用于创建折叠菜单
jQuery Accordion 插件用于创建折叠菜单.它通常与嵌套的列表.定义列表或嵌套的 div 一起使用.选项用于指定结构.激活的元素和定制的动画. 后期完善
- python代码 构建验证码
1.python代码编写 (随机验证码): #coding: utf-8 import Image, ImageDraw, ImageFont, ImageFilter import string, ...
- A Translation for Quaternion 一篇对四元数的翻译
一篇写的非常好的博客:http://www.cnblogs.com/lookof/archive/2012/02/24/2360749.html
- Visual Studio 2010以及TeamFoundationServer 2010 MSDN免Key版地址分享(转载)
以下链接转自互联网,已经下载验证SHA1码和MSDN公布的一致,跟我一样不喜欢下试用版再自己动手的同学,请使用最新版的BT工具或者迅雷下载(需要支持Magnet协议) Download Visual ...