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">&blank;</shirt>
</clothes> </goods>

goods.xml

XML的schema约束

  ---详细见W3C

--是一种定义和描述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简单学习的更多相关文章

  1. LINQ to XML LINQ学习第一篇

    LINQ to XML LINQ学习第一篇 1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: public static void CreateDoc ...

  2. Android] Android XML解析学习——方式比较

     [Android] Android XML解析学习——方式比较 (ZT)  分类: 嵌入式 (From:http://blog.csdn.net/ichliebephone/article/deta ...

  3. XML语言学习随笔

    XML和HTML都是W3C的定制的标准,XML的诞生本身是为了替代不成熟的HTML,但是因为现实的环境,XML替代HTML并未成功.之后W3C为了代码严谨性的决心,又发布了升级版的标记语言XHTML, ...

  4. 简单学习一下ibd数据文件解析

    来源:原创投稿 作者:花家舍 简介:数据库技术爱好者. GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 简单学习一下数据文件解析 这是尝试使用Golang语言简单解析My ...

  5. Log4j简单学习笔记

    log4j结构图: 结构图展现出了log4j的主结构.logger:表示记录器,即数据来源:appender:输出源,即输出方式(如:控制台.文件...)layout:输出布局 Logger机滤器:常 ...

  6. mybatis-config.xml简单笔记

    mybatis-config.xml简单笔记 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ...

  7. applicationContext.xml简单笔记

    applicationContext.xml简单笔记 <?xml version="1.0" encoding="UTF-8"?> <bean ...

  8. spring-servlet.xml简单示例

    spring-servlet.xml简单示例 某个项目中的spring-servlet.xml 记下来以后研究用 <!-- springMVC简单配置 --> <?xml versi ...

  9. xml基础学习笔记05

    Xpath快速解析 如题一样,本篇主要说说Xpath快速查找XML文档   * Xpatn.Xquery,是专门用来查询xml的语言   * 查询xml非常快   Xpatn.Xquery,是专门用来 ...

随机推荐

  1. WIN7如何查找网络打印机

    1 在开始菜单中输入"打印机"并点击"添加打印机" 2 点击下面一个,并搜索家庭组的打印机,一般可以搜到(注意这台电脑不能关机或睡眠). 3 查找并添加会需要安 ...

  2. Android笔记——UI开发

    概述: 布局(Layout)的概念是针对Activity的,Activity就是布满整个Android设备的窗体或者悬浮于其它窗体上的交互界面.在一个应用程序中通常由多个Activity构成.每一个须 ...

  3. 【SSH进阶之路】Struts基本原理 + 实现简单登录(二)

    上面博文,主要简单的介绍了一下SSH的基本概念,比較宏观,作为刚開始学习的人可以有一个总体上的认识,个人觉得对学习有非常好的辅助功能.它不不过一个"瞭望塔".更是检验是否真正掌握全 ...

  4. 01-spring-专题IOC

    接口: 1,用于沟通的中介物的抽象化 2,实体把自己提供给外界的一种抽象化说明,用以内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式(内部可能修改了,但是接口不变). 简 ...

  5. 01-hibernate注解:类级别注解,@Entity,@Table,@Embeddable

    @Entity @Entity:映射实体类 @Entity(name="tableName") name:可选,对应数据库中一个表,若表名与实体类名相同,则可以省略. 注意:使用@ ...

  6. 基于Qt的A*算法可视化分析

    代码地址如下:http://www.demodashi.com/demo/13677.html 需求 之前做过一个无人车需要自主寻找最佳路径,所以研究了相关的寻路算法,最终选择A算法,因为其简单易懂, ...

  7. Sublime Text 3 JS 格式化插件 JsFormat的配置使用

    1.首先需要下载安装包:(下载地址:https://github.com/jdc0589/JsFormat) 2.插件包放到sublime安装目录的Data\Packages目录中 3.快捷键 Ctr ...

  8. 代码收藏系列--jquery--筛选器、事件绑定技巧(转载)

    代码收藏系列--jquery--筛选器.事件绑定技巧 Jquery筛选器的一些常用技巧,比如过滤属性等 /* 过滤获取没有含data-xsui-grid-colspan的节点 */$(this).fi ...

  9. phpexcel 读取日期的问题?

    phpexcel 读取excel数字时,显示为一串数字(时间都是类似于这样的数字:41890.620138889),如何将数字转换为对应的日期来显示呢?特别是例如星期一这种的时间. 可以用phpexc ...

  10. mysql事务块处理

    begin ,rollback,commit .当然有的人用begin /begin work .推荐用START TRANSACTION 是SQL-99标准启动一个事务. start transac ...