📄 8_xml学习笔记.txt
字号:
3. 关于XML并没什么特别的
答:1) XML并没什么特别的,就是一些用尖括号括起的XML标记的纯文本文件。
2) 可处理纯文本文件的软件同样能处理XML。在一个简单的文本编辑器中,XML标记可见且不会特别地处理。
3) 在一个XML敏感的应用程序中,XML标记能特别地处理。标记也许能或者不可见,或者是一个功能,这依赖于应用程序。
4. XML元素的关系
答:1) 元素以父子关系相互联系;
2) 为理解XML术语,你应该知道XML元素命名间的联系以及元素内容是如何描述的。
5. 元素的内容
答:1) 元素可有不同的内容类型;
2) 一个元素包括从元素开始标记到元素结束标记间的所有东西;
3) 一个元素可有元素内容、混合内容、简单内容或者空内容。一个元素也可有属性。
6. 元素命名
答:XML元素必须遵守这些命名规则:
1) 名称可包括字母、数字以及其它字符;
. 名称不能以数字开头;
. 不能以字母xml(或XML或Xml)开头;
. 名称不能包括空隔;
2) 当你“发明”元素名称时请注意并遵定这些简单的的规则:
. 任何名称都可以使用,但名字尽量富有描述性。名称中各词间以下划线分隔的形式很棒。
. 名称应该简短而简单,像<book_title>而不是:<the_title_of_the_book>。
7. XML属性
答:1) XML元素可以像HTML一样在开始标记中带有属性。
2) 属性提供不是数据的信息。
8. 引号类型
答:1) 属性值必须括在引号内,要么是单引号要么是双引号。以一个人的性别举例,人的标记可写成:
<person sex="female">或者
<person sex='female'>
2) 双引号是最常用的,但有时(假如这个属性值本身包括引号)有必要使用单引号。例如:
<gangster name='George "Shotgun" Ziegler'>
3) 数据可存储于子元素或属性中。
4) 关于何时使用属性、何时使用子元素并没有什么规则。在HTML使用属性非常方便,但在XML中你应尽量避免它们。假如信息像数据的话使用子元素吧。
9. 避免使用属性?
答:1) 使用属性存在一些问题:
. 属性不能包括多个值,但子元素能;
. 属性对未来的变化不容易扩展;
. 属性不能描述结构,但子元素能;
. 属性使用程序代码操作困难得多;
. 属性值不容易使用DTD测试;
2) 假如你使用属性作为数据的容器,你得到的将是难于阅读和维护的文档。使用元素描述数据,只在当信息与数据无关时才使用属性。
10. “有效的”XML文档
答:一个“有效的”XML文档是一个“结构良好”的XML文档,同样遵守DTD。
11. DTD和Schema
答:1) 一个DTD定义了一个XML文档元素的合法性。
2) DTD的目的是定义XML文档的有效构建块。它用一个有效元素的列表定义了文档结构。
3) XSchema是一个XML文档,用来代替DTD。
12. 错误将会中止你
答:1) XML文档的错误将会中止当前XML程序。
2) W3C的XML规范规定:假如发现一个确定的错误,程序不应该继续处理当前XML文档。原因在于XML软件应该容易写,所有XML文档应该一致。
3) 在HTML中,它可能创建带有很多错误的文档。一个主要的原因在于HTML浏览器非常大,在它们碰到HTML错误时它有自己的方式去断定这份文档应该像什么。
13. XML内嵌于HTML中
答:1) 非法定的<xml>标记使XML数据内嵌于HTML中。
2) XML数据能直接内嵌入HTML文件中,如:
<xml id="note"><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note></xml>
或者作为一个单独的XML文件以下列方式内嵌:
<xml id="note" src="note.xml"></xml>
注意<xml>标记是HTML元素,而不是XML元素。
14. 数据绑定
答:数据岛能绑定到HTML元素。在下面的例子中,一个ID为“cdcat”的XML数据岛通过一个外在的XML文件装载进来。一个HTML表格通过数据源属性绑定到数据,最后表数据属性通过span内一数据字段属性绑定到XML数据。
<html><body>
<xml id="cdcat" src="cd_catalog.xml"></xml>
<table border="1" datasrc="#cdcat">
<tr>
<td><span datafld="ARTIST"></span></td>
<td><span datafld="TITLE"></span></td>
</tr>
</table>
</body>
</html>
15. 名域空间属性
答:1) 名域空间属性置于元素的开始标记中,它的语法如下:
xmlns:namespace-prefix="namespace"
2) 当一个元素的开始标记定义了一个名域空间,所有的带有相同前缀的子元素都和这个名域空间相联系;
3) 注意到那个地址用于识别名域空间,而不是用于解析器寻找信息。唯一的目的是给名域空间一个唯一的名字。
16. 统一资源标识符(URI)
答:1) 一个URI是一个用来确定网络资源的字符串。最常用的URI是URL,它用来标识一个互联网域名地址。另一种不太普遍的类型是URN。在我们的范例中,我们仅使用URL。
2) 由于我们的设备范例使用了一个互联网地址标识它的名域空间,我们可确信它是唯一的。
17. DTD有关介绍
答:1) DTD的目的是验证XML文档的有效性,它用一个有效元素的列表定义了文档的结构。
2) 一个DTD可以声明在你XML文档的内容,也可作为一个外部引用。
18. 内置DOCTYPE声明
答:假如DTD声明在XML源文件内,它使用以下语法封装在DOCTYPE定义中:
<?xml version="1.0"?>
<!DOCTYPE note[ <!--定义这是一个note类型的文档-->
<!ELEMENT note (to,from,heading,body)> <!--定义note元素的四个子元素-->
<!ELEMENT to (#PCDATA)> <!--定义to元素的类型为#PCDATA"-->
<!ELEMENT from (#PCDATA)> <!--定义from元素的类型为#PCDATA"-->
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>
19. 外置DOCTYPE声明
答:假如DTD对于你XML源文件而言是一个外在文件,它装入XML源文件的语法如下:
<!DOCTYPE root-element SYSTEM "filename">
范例:
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>
20. 为什么使用DTD?
答:1) 通过DTD,每个XML文件可以有一个它格式的描述;
2) 通过DTD,彼此独立的组织可以使用共同的标准交换数据;
3) 你的应用程序可以使用一个标准的DTD去验证你从外部接收到的数据是否有效;
4) 你同样能使用DTD去验证你自己的数据。
21. XML文档的构建块
答:从DTD的观点来看,所有的XML文档(以及HTML文档)都由以下简单的构建块组成:
. Elements
. Tags
. Attributes
. PCDATA
. CDATA
22. 元素
答:元素是XML和HTML文档的主要构建块;
23. 标签
答:标签用于标记元素,一个开始标签标记了元素的开始,一个结束标签标记了元素的结束;
24. 属性
答:属性提供了关于属性的额外信息。属性一般置于元素的开始标签内。属性一般以名称/值对形式出现。
25. PCDATA
答:1) PCDATA是解析字符数据(parsed character data)的缩写。
2) 字符数据看作是XML元素开始标签和结束标签间找到的文本。PCDATA是将会被解析器解析的文本。文本中的标签将会作为标记处理。
26. CDATA
答:1) CDATA同样是字符数据;
2) CDATA是不会被解析器解析的文本。文本内的标签将不会被作为标记处理,文本内的实体将不会展开。
27. 声明一个元素
答:在一个DTD中,XML元素声明为element。一个element声明有如下语法:
<!ELEMENT element-name category> 或者
<!ELEMENT element-name (element-content)>
28. 空元素
答:空元素的category关键字声明为EMPTY:
<!ELEMENT element-name EMPTY>
. DTD范例:<!ELEMENT br EMPTY>
. XML范例:<br/>
29. 只有一个字符数据的元素
答:只有一个字符数据的元素在圆括号内声明#PCDATA
<!ELEMENT element-name (#PCDATA)>
范例:
<!ELEMENT from (#PCDATA)>
30. 带有子元素的元素
答:语法:<!ELEMENT element-name(child-element-name)>或者<!ELEMENT element-name(child-element-name,child-element-name,...)
范例:<!ELEMENT note(to, from, heading, body)>
当子元素以逗号分隔的序列形式声明的时候,子元素必须以相同的序列出现在文档中。对于一个完整的声明,子元素也必须声明。子元素也可以有子元素。完整的声明可能是:
<!ELEMENT note (to, from, heading, body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
31. 相同元素出现一次
答:<!ELEMENT element-name (child-name)>
范例:
<!ELEMENT note(message)>
上面的声明范例声明子元素message只能在note元素中出现一次。
32. 超过出现一次
答:<!ELEMENT element-name(child-name+)>
范例:
<!ELEMENT note (message+)>
“+”号表示子元素message必须在“note”中出现一至多次。
33. 出现O至多次
答:<!ELEMENT element-name (child-name*)>
范例:
<!ELEMENT note(message*)>
“*”号表示子元素message必须在“note”中出现一至多次。
34. 出现O至1次
答:<!ELEMENT element-name (child-name?)>
范例:
<!ELEMENT note(message?)>
“?”号表示子元素message必须在“note”中出现一至多次。
35. 声明可选的内容
答:<!ELEMENT note (to,from,header,(message|body))>
36. 声明混合的内容
答:<!ELEMENT note (#PCDATA|to|from|header|message)*>
可以有由任意多的解析字符和元素(to、from、header、message)组成的混合内容。
. #PCDATA必须是该组中的第一个标号。该组必须总是选择而不是序列。其他组成必须是元素类型名(从不加括号的组)。末尾的符号必须总是星号(*),而决不能是加号(+)。
37. Schema和XSD
答:1) XML Schema是XML格式的DTD的替代品。
2) 一个XML schema描述了一份XML文档的结构。
3) XML Schema language简称为XSD。
38. XML Schema是什么?
答:1) XML Schema的目的是定义XML文档合法的构建块,就像DTD一样。
2) 一个XML Schema:
. 定义了可出现在文档中的元素;
. 定义了可出现在文档中的属性;
. 定义了哪些元素是子元素;
. 定义了子元素的顺序;
. 定义了子元素的数量;
. 定义了一个子元素是否为空或是否能包含文本;
. 定义了元素和属性的数据类型;
. 定义了默认和固定的元素值。
39. XML Schemas, DTD的继任者
答:我们认为不久的将来XML Schemas作为DTD的替代品会使用在大多数Web应用程序中,理由是:
. XML Schemas可扩展;
. XML Schemas比DTD更丰富以及更有用;
. XML Schemas用XML编写;
. XML Schemas支持数据类型;
. XML Schemas支持名域空间;
40. XML Schemas, W3C组织推荐
答:1) XML Schema最初由微软提出,但是正式由W3C组织推荐是在2001年5月;
2) 这个规范现在是稳定的,并作为W3C的成员。
41. Schema对数据类型的支持
答:1) XML Schema最显著的增强是对数据类型的支持;
2) 对数据类型的支持使得:
. 更易描述允许的文档内容;
. 更易验证数据的正确性;
. 更易和来自于数据库的数据工作;
. 更易于定义数据的限制;
. 更易于定义数据的格式;
. 更易于在不同数据类型间转换;
44. XML Schema使用XML语法
答:1) 关于XML Schema的另外一个显著的增加是他们用XML编写。
2) 因为XML Schemas用XML编写:
. 不必重新学习其它语言;
. 可以使用XML编辑器编辑Schema文件;
. 可以使用XML解析器解析你的Schema文件;
. 可以通过XML DOM操作你的Schema文件;
. 可以通过XSLT转换你的Schema文件;
2004-11-1 星期一 阴
43. XML Schemas安全的数据交互
答:1) 当数据从发送者发送到接收者,本质上双方都知道内容的样子;
2) 通过XML Schemas,发送者以接收者理解的方式描述数据;
3) 一个类似于“1999-03-11”的数据在某些城市会翻译为11月3日而在另外一些城市会翻译为3月11日,但是一个XML元素的数据类型定义为类似于:
<date type="date">1999-03-11</date>
这样确使大家都能理解内容。因为XML的data数据类型格式为:CCYY-MM-DD。
44. XML Schemas是扩展的
答: 1) XML Schemas是扩展的,就像XML,因为他们是用XML写的。
2) 通过一个扩展的Schema定义,你可以:
. 在其它Schemas中重用你的Schema;
. 从标准类型中创建你自己的数据类型;
. 相同的文档引用多个schemas;
45. 结构良好并不够
答:1) 结构良好的XML文档符合XML语法规则:
. 必须以XML声明开始;
. 必须有一个唯一的根元素;
. 所有开始标签必须匹配结束标签;
. XML标签大小写敏感;
. 所有元素必须封闭
. 所有元素必须嵌套适当;
. 所有属性值必须用引号引起来;
2) 即便文档结构良好,他们依然可能出现错误,而这些错误可能出现严重的结果。
46. 一个简单的XML文档
答:看看这个名称为note.xml的简单XML文档:
<?xml version = "1.0 " ?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -