博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(一) 概述
阅读量:4047 次
发布时间:2019-05-25

本文共 1828 字,大约阅读时间需要 6 分钟。

1.XML和HTML区别

(1)与HTML不同,XML是大小写敏感的,例如<H1>和<h1>是不同的XML标签。
(2)在XML中结束标签不能省略,而在HTML中如果从上下文可以分清哪里是段落或列表项的结尾,那么结束标签(如</p>、</li>)就可以省略。
(3)在XML中,只有一个标签而没有相对应的结束标签的元素必须以/结尾,例如<img src="coffeecup.png"/>,这样解析器就知道不需要寻找</img>标签了。
(4)在XML中,属性值必须用引号括起来。在HTML中引号可有可无。
(5)在XML中,所有属性必须有属性值,比如checked="true"
2.XML文档的结构
(1)XML文档以一个文档头开始<?xml version="1.0"?> 或 <?xml version="1.0" encoding="UTF-8"?>严格来说,文档头是可有可无的,但推荐使用文档头。
(2)文档头之后通常是文档类型定义(Document Type Definition, DTD),文档类型定义式确保文档正确性的一个重要机制,但这不是必需的。
    <!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >
(3)XML文档的正文包含根元素,根元素包含,根元素包含其他一些元素。元素可以有子元素(child element)、文本或者混合式内容(mixed content)
e.g.混合式内容(mixed content)   
    <font>
        Helvetica
        <size>36</size>
    </font>
在设计XML文档结构时,应避免使用混合式内容。如果避免了混合式内容,就可以简化解析过程。
(4)XML元素可以包含属性,例如<size unit="pt">36</size>
说明:何时使用元素,何时用属性
e.g.如果将font的值均变为属性
<font name="Helvetica" size="36">
有一些灵活性的缺点,当需要把单位添加到size中时
<font name="Helvetica" size="36 pt">
必须对36 pt进行解析,XML设计应避免这种麻烦。
e.g.把单位添加到size子元素的属性中
    <font>
        <name>Helvetica</name>
        <size unit="pt">36</size>
    </font>
结论:属性只应该在修改值的解释时使用(比如单位),而不是在指定值时使用。当设计某个设置是否是对某个值的解释时,就不应该使用属性,而应该完全使用元素。许多有用的文档根本就不使用属性。
(5)其他标记
1)字符引用(character reference)的形式是 &# 十进制,或 &#x 十六进制。例如 &#233 &#xD9表示的是同一个特殊字符
2)实体引用(entity reference)的形式是 &name ,例如 &lt 小于、&gt 大于、&amp &符号、&quot 引号、&apos 省略号等字符。可以在DTD中定义其他的实体引用。
3)CDATA部分(CDATA Section)用 <![CDATA[ 和 ]]> 来限定界限。是字符数据的一种特殊形式,可以使用它们来包含含有<、>、&之类的字符,而不必将它们解释为标记。例如 <![CDATA[<&> others]]>。CDATA部分不能包含字符串]]>。它常用作将传统数据偷偷纳入XML文档的一个后门。
4)处理指令(processing instruction)专门在处理XML文档的应用程序中使用的指令,用 <? 和 ?> 来限定界限,例如<?xml-stylesheet href="mystyle.css" type="text/css"?> ,每个XML都以一个处理指令开头<?xml version="1.0" encoding="UTF-8"?>
5)注释(comment)用 <!-- 和 --> 限定其界限,例如<!-- This is a comment -->,注释中不能包含 -- ,注释只是为了给文档读者提供信息,其中绝不含有隐藏的命令,命令是由处理指令来实现的。

转载地址:http://bayci.baihongyu.com/

你可能感兴趣的文章
java LinkedList与ArrayList迭代器遍历和for遍历对比
查看>>
drat中构造方法
查看>>
JavaScript的一些基础-数据类型
查看>>
JavaScript基础知识(2)
查看>>
转载一个webview开车指南以及实际项目中的使用
查看>>
android中对于非属性动画的整理
查看>>
一个简单的TabLayout的使用
查看>>
ReactNative使用Redux例子
查看>>
Promise的基本使用
查看>>
coursesa课程 Python 3 programming 统计文件有多少单词
查看>>
coursesa课程 Python 3 programming 输出每一行句子的第三个单词
查看>>
Returning a value from a function
查看>>
coursesa课程 Python 3 programming Functions can call other functions 函数调用另一个函数
查看>>
coursesa课程 Python 3 programming The while Statement
查看>>
course_2_assessment_6
查看>>
coursesa课程 Python 3 programming course_2_assessment_7 多参数函数练习题
查看>>
coursesa课程 Python 3 programming course_2_assessment_8 sorted练习题
查看>>
在unity中建立最小的shader(Minimal Shader)
查看>>
1.3 Debugging of Shaders (调试着色器)
查看>>
关于phpcms中模块_tag.class.php中的pc_tag()方法的含义
查看>>