xml基础之二(XML结构【1】)

新建 模板 小书匠 
  1. XML结构

XML结构

1.1 元素:被开始标签和结束标签所包裹的内容,(红色部分),蓝色部分也是元素,由于其仅有词语和句子,可细分为文本元素。
1.2 属性:在开始标签内,用于描述标签附加信息的字段,等于号前面的字段为属性,其后面的字符串属性值.(青绿色部分

简化结构如下:

xml简化结构

根节点开始,包含1个或多个子节点,子节点还可以有其他子节点,在这些子节点的开始标签内用属性来定义其功能特性和附加信息,在开始和结束标签内的用文本对标签进行解释和描述。【谨记1.1处概念,每个双结点【开始结点和结束结点】可以看作一个元素

1.3 元素/结点与属性之间的转换
XML文档内属性提供的信息不能用于数据解析,但其附加的信息却非常重要。由于它不可以用于数据解析,对于扩展来说,就失去了意义。所以一般来说,尽量避免对结点使用属性进行描述。
由于XML的功能是用于存储数据,所以对于何时使用属性和结点应该有个清晰的理解,即当某种数据的信息源唯一,容易理解且不会轻易被改动时,用属性进行描述是最好的。公民的身份证号,生日和性别就是极好的例子。

<person id="440xxxxxx",sex='male',bir="13/9/18">
</person>

上述代码描述了要存储的3个公民的属性,存储身份证号时ID值是唯一的,而性别可男可女,生日而大有不同,而且很难理解这个生日到底是13年9月18号还是18年9月13号,所以上述代码应修改为

<person id="440xxxxxx">
<sex>male</sex>
<bir>
<day>13</day>
<month>9</month>
<year>18</year>
</bir>
</person>

细心的人应该发现对标签元素添加属性时,属性值必须被双引号或者单引号包裹。一般来说,仅使用一种引号方式对字符串修饰。

<person id="440xxxxxx",sex='male'>  <!-- 此处标签含多个属性,不推荐该写法,仅为展示属性都可被双引号和单引号包裹-->
</person>

2.XML命名

了解XML的结构后,开始探讨XML元素/标签的命名。我们知道XML是标记语言,虽然没有预留什么关键字,但是命名时请勿以xml的大小写和数字,标点符号格式开始;除此之外,还规定内容不能空格,避免使用"-",":"以及"."(杠,冒号以及点),只要遵守上述3条规则即是合法的XML元素。

<!--错误示范1:以xml,数字或者标点符号开头的元素标签命名-->
<xml_xxxx> </xml_xxx>
<XML_xxxx> </XML_xxx>
<1_xxxx></1_xxxx> <!--错误示范2:内容包含空格-->
<tes t></tes t> <!--很多软件解析遇到空格就停止读取,这样这个结点的读取就不完整或者出错--> <!--错误示范3:避免使用"-",":"以及"."(杠,冒号以及点)-->
<test-parse></test-parse> <!--某些软件解析该结点时,只会读取"-"前面的内容-->
<test:parse> </test:parse><!--某些软件会将冒号作为命名空间的标志,使用冒号容易引起歧义-->
<test.parse> </test.parse><!--某些软件会将点号作为访问属性的标志,使用点号容易引起歧义-->

3.标准XML文档

遵循XML语法所编写的XML文档就是标准的(Well Formed)XML文档,而通过DTD验证的标准XML文档即为合法的XML文档
注:关于XML语法,请参照https://www.cnblogs.com/singledogpro/p/9638433.html

<?xml version="1.0" encoding="ISO-8859-1"?>           <!-- 1.有文档声明 -->
<note> <!-- 2.有根节点,3.嵌套正确 -->
<to des="给某人">George</to>        <!--4.结点成对出现,5.属性有引号包裹 -->
<from>John</from> <!--6.大小写敏感 -->
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

以上就是标准文档XML的范例,还有DTD结构和Schema.

xml基础之二(XML结构【1】)的更多相关文章

  1. xml基础之二(XML结构【2】)DTD文档模版

    xml基础之二(XML结构[2])DTD文档模版 xml 模板 文档结构  我们知道XML主要用于数据的存储和传输,所以无论是自定义还是外部引用DTD模板文档,都是为了突出数据的存储规范.DTD(文档 ...

  2. XML基础+Java解析XML +几种解析方式的性能比较

    XML基础+Java解析XML 一:XML基础 XML是什么: 可扩展的标记语言 XML能干什么: 描述数据.存储数据.传输(交换)数据. XML与HTML区别: 目的不一样 XML 被设计用来描述数 ...

  3. XML学习总结(二)——XML入门

    XML学习总结(二)——XML入门 一.XML语法学习 学习XML语法的目的就是编写XML 一个XML文件分为如下几部分内容: 文档声明 元素 属性 注释 CDATA区 .特殊字符 处理指令(proc ...

  4. C# XML基础入门(XML文件内容增删改查清)

    前言: 最近对接了一个第三方的项目,该项目的数据传输格式是XML.由于工作多年只有之前在医疗行业的时候有接触过少量数据格式是XML的接口,之后就几乎没有接触过了.因此对于XML这块自己感觉还是有很多盲 ...

  5. XML详解二XML的解析与创建

    XML用来传输和存储数据,如何解析获取到的XML文本呢? 一.解析XML 创建demo.xml文件: <?xml version="1.0" encoding="U ...

  6. XXE学习(一)——XML基础

    XXE学习(一)——xml基础 一.XML简介 XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据 ...

  7. xml基础小结

    XML基础 1)XML的作用 1.1 作为软件配置文件 1.2 作为小型的“数据库” 2)XML语法(由w3c组织规定的) 标签: 标签名不能以数字开头,中间不能有空格,区分大小写.有且仅有一个根标签 ...

  8. Java xml 操作(Dom4J修改xml   + xPath技术  + SAX解析 + XML约束)

    1 XML基础 1)XML的作用 1.1 作为软件配置文件 1.2 作为小型的"数据库" 2)XML语法(由w3c组织规定的) 标签: 标签名不能以数字开头,中间不能有空格,区分大 ...

  9. XML基础介绍【二】

    XML基础介绍[二] 1.schema约束dtd语法: <!ELEMENT 元素名称 约束>schema符合xml的语法,xml语句.一个xml中可以有多个schema,多个schema使 ...

随机推荐

  1. 用了 10 多年的 Tomcat 居然有bug !

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 为了解决分布式链路追踪的问题,我们引入了实现OpenTracing的Jaeger来实现.然后我们为SpringBoot框架写 ...

  2. re库的使用

    re库的使用 精确匹配 如果直接给出字符,就是精确匹配.用\d可以匹配一个数字,\w可以匹配一个字母或数字 s1='00\d'#可以匹配'007',但是匹配不了'00A' s2='\d\d\d'#可以 ...

  3. [HDU 3712] Fiolki (带边权并查集+启发式合并)

    [HDU 3712] Fiolki (带边权并查集+启发式合并) 题面 化学家吉丽想要配置一种神奇的药水来拯救世界. 吉丽有n种不同的液体物质,和n个药瓶(均从1到n编号).初始时,第i个瓶内装着g[ ...

  4. window-tree命令

    tree 以图形方式显示在驱动器中的目录结构或磁盘的路径. 有时候需要整理文档目录时,而文件太多,一个个去写相应的文件目录结构也不现实,就用到了window下的tree命令 语法 tree [< ...

  5. wordpress添加index页面跳转链接

    1. 制作page页面 1.1 在themes下的主题目录新建一个page页面 1.2 在wordpress后台新建页面跟在目录页面中相同名字的页面文件 1.3 复制后台页面中的古定链接 1.4 在i ...

  6. 初学Git——命令总结

    首先,感谢廖雪峰老师制作的Git教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b0 ...

  7. python二维码模块(qrcode)

    qrcode模块安装 运行命令行工具(cmd),使用pip安装工具分别安装qrcode. pip install qrcode 先来个简单的例子 import qrcode # 二维码内容 data ...

  8. 魔咒词典 HDU - 1880 (字符串hash 单hash转int或者 双hash )

    哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助. 给你一部魔咒词 ...

  9. easyuUI实现客户分页显示逻辑分析

    页面 前端 前端easyUI,自带分页功能,添加pagination属性 前端会传给后端两个属性: page:当前页码 rows:每页显示记录数 后端 接收page和rows参数 根据参数分页查询 获 ...

  10. day4 切片,数据类型

    day5: 序列,可以使用切片 序列类型:字符串,列表,元祖 特点:可以通过坐标来取值,坐标从0开始 >>> s = "agfdagsgsdgsa" >&g ...