零java基础搞定微信Server_1_XML基础学习

XML基础

前前言

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

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!

前言

在《微信硬件平台蓝牙demo服务端教程》中,可以看到好多个XML的例子。
零java基础搞定微信Server_1_XML基础学习

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

1.XML介绍

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

2.XML与HTML的比较

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

3.XML文档

3.1 XML声明

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

3.2 文档类型声明

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

XML所用的DTD有两种形式:

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

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

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

3.3 元素

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

3.3.1 元素的形式

  • 空元素

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

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

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

    <singdog name="张全蛋"  
        <age>28</age>  
    />
    

3.3.2 元素的构成

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

  • 子元素

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

  • 字符数据

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

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

为了表示那些不能用的字符,可以采用这种方式,以&;的形式来引用。
零java基础搞定微信Server_1_XML基础学习

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

  • CDATA段

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

3.4 注释

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

3.5 处理指令

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

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

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

3.6 空白处理

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

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

3.7 行尾处理

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

3.8 语言标识

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

<p xml:lang="ch"\>单身狗</p>  
<p xml:lang="en"\>singledog</p>  

为了一个特殊字符可搞死宝宝了,这篇笔记一直发不出去。

版权声明:本文为博主原创文章,未经博主允许不得转载。

零java基础搞定微信Server_1_XML基础学习

上一篇:iOS模仿微信的那个视频眼睛动画


下一篇:微信公众号支付总结