零java基础搞定微信Server_1:XML基础学习

1 前前言

先扯一点无关的蛋,今天是七夕,所以今晚就不加班了,陪老婆去。朋友圈现在流传着一首有意思的歌谣,献给屏幕前的你,^_^

Single dog, single dog, single all the day. 
See AV, hit the plane, theyre doing all the day. Hey! 
Single dog, single dog, why not be a gay? 
No more wait, no more afraid, 
make him be a gay!

2 前言

在《微信硬件平台蓝牙demo服务端教程》中,可以看到好多个XML的例子。

完成本文的知识储备,将会明白这个XML结构体的意思。笔记内容大多来自于孙鑫《JavaWeb开发详解》,我从中梳理总结出必要的信息,帮助消化理解。

3 XML介绍

extensible markup language。它的特点是可创建新的标记,是创建标记语言的元语言。而HTML的标记都是固定的。例子中的<欢迎词>就是一个新的标记,下文中我还针对七夕节,应景地给出了<singledog\>的单身狗标记。

<?xml version="1.0" encoding="gb2312"?>
<欢迎词>
    <标题>今天是七夕</标题>
    <内容>欢迎你,单身狗</内容>
</欢迎词>

1998年,W3C为了将SGML的丰富性和HTML的易用性结合到web应用中,发布了XML1.0标准。SGML也是一种定义标记语言的元语言,XML是SGML的简化版本。

4 XML与HTML的比较

  • XML只描述数据和数据结构,而HTML还可以体现排版显示。
  • XML对文档格式要求更严格
  • XML有且仅有一个根元素

5 XML文档

5.1 XML声明

<?xml version="1.0" encoding="gb2312" standalone="yes"?>

5.2 文档类型声明

DTD(Document Type Definition),规范元素和属性的规则及相互关系。HTML就有一个标准的DTD文件,所以其组织结构和所有的标签都是固定的。

XML所用的DTD有两种形式:

  • 声明DTD在一个外部文件中

    <!DOCTYPE greeting SYSTEM "hello.dtd">
    
  • 在XML文档中给出DTD

    <!DOCTYPE greeting [
        <!ELEMENT greeting (#PCDATA)>
    ]>
    

5.3 元素

元素由开始标签、元素内容、结束标签构成。

5.3.1 元素的形式
  • 空元素

    <singledog/>
    
  • 带有属性的空元素

    <singledog name="张全蛋" age="28"/>
    
  • 带有内容的元素

    <singledog   
        这是一个学生信息  
        <name>张全蛋</name>  
        <age>28</age>  
    />
    
  • 带有内容和属性的元素

    <singdog name="张全蛋"  
        <age>28</age>  
    />
    
5.3.2 元素的构成

元素的内容可以包含子元素、字符数据、字符引用和实体引用、CDATA段。

  • 子元素

上文中的name和age都是单身狗的子元素。

  • 字符数据

特殊的字符“& < ]]>”不能用。

  • 字符引用和预定义实体引用

为了表示那些不能用的字符,可以采用这种方式,以&;的形式来引用。

我这边用markdown编辑这边笔记时,也输不了空格,只得用字符引用,道理上是相通的。

  • CDATA段

CDATA段中包含的是纯字符数据,可将整个本文解释为字符数据,内容不被XML解析。
CDATA段以字符串“

5.4 注释

<!--这是个注释--\>

5.5 处理指令

处理指令允许文档中包含由应用程序来处理的指令。处理指令的语法和XML声明类似,以<?开始,以?>结束,一个常见的样式表单的处理指令如下所示:

<?xml-stylesheet href="hello.css" type="text/css"?>

我们的应用程序可以根据这个xml-stylesheet的标识做相应的处理。
xml-stylesheet 总是放在XML声明之后,其他的指令的位置则没那么严格,但都不能放在XML之前。

5.6 空白处理

当XML传递给应用程序时,会自动去掉空白(空格、制表符和空行),而当需要保留空白的时候,需要用到这个属性,xml:space。

当元素中使用了这个属性,元素中的空白都将会保留。

5.7 行尾处理

当需要传递行尾控制字符时,使用 #xA #xD。

5.8 语言标识

标识出内容所使用的自然或人工语言,使用xml:lang

<p xml:lang="ch"\>单身狗</p>  
<p xml:lang="en"\>singledog</p>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值