我是新来的XML,我想了解的基础知识。 我阅读下面的“学习XML”行了,但它仍然是不明确的,对我来说。 有人能指出我在书上或网站上,清楚地解释了这些基本知识?
从学习XML:
XML声明介绍了一些文件的最一般的属性,告诉它需要一个XML解析器来解释这个文件的XML处理器。
这是什么意思?
我理解xml version
的一部分-无论是DOC和DOC在相同版本的XML应该“讲”的用户。 但关于什么encoding
一部分? 为什么有此必要?
我是新来的XML,我想了解的基础知识。 我阅读下面的“学习XML”行了,但它仍然是不明确的,对我来说。 有人能指出我在书上或网站上,清楚地解释了这些基本知识?
从学习XML:
XML声明介绍了一些文件的最一般的属性,告诉它需要一个XML解析器来解释这个文件的XML处理器。
这是什么意思?
我理解xml version
的一部分-无论是DOC和DOC在相同版本的XML应该“讲”的用户。 但关于什么encoding
一部分? 为什么有此必要?
要了解“编码”属性,你必须了解字节 字符之间的差别。
认为字节0和255之间的数字,而字符是像“一”,“1”和“A”。 该组所有可用的字符被称为字符集 。
每个字符具有被用于表示它的一个或多个字节的序列; 但是,字节的确切数目和值取决于所使用的编码 ,有许多不同的编码。
大多数编码是基于一个古老的字符集和编码称为ASCII这是每个字符一个字节(实际上,只有7位),包含128个字符,包括很多美国英语中常用的字符。
例如,这里是在ASCII字符集6个字符由值60到65表示。
Extract of ASCII Table 60-65
╔══════╦══════════════╗
║ Byte ║ Character ║
╠══════╬══════════════║
║ 60 ║ < ║
║ 61 ║ = ║
║ 62 ║ > ║
║ 63 ║ ? ║
║ 64 ║ @ ║
║ 65 ║ A ║
╚══════╩══════════════╝
在全ASCII字符集,使用的最低值为零,最高为127(两者都是隐藏的控制字符)。
然而,一旦你开始需要更多的字符比基本ASCII提供(例如,带重音符号,货币符号,图形符号等字母),ASCII是不合适的,你需要的东西更广泛。 你需要更多的字符(字符集不同),你需要一个不同的编码为128个字符是不够的,适合所有字符。一些编码提供一个字节(256个字符),或6个字节。
随着时间的推移很多编码已经产生。 在Windows世界中,有CP1252,或ISO-8859-1,而Linux用户倾向于UTF-8。 Java使用UTF-16本身。
在一个编码的字符字节值的一个序列可能代表一个完全不同的角色在另一种编码,甚至可能是无效的。
例如,在ISO 8859-1中,A是由一个值字节表示226
,而在UTF-8是两个字节: 195, 162
。 然而,在ISO 8859-1, 195, 162
将是两个字符,A,¢。
XML看作不是顺序字符,但字节序列。
想象一下,系统接收XML看到字节195, 162
。 它是如何知道这些是什么字?
为了使系统来解释这些字节作为实际字符(和因此显示它们或将其转换为另一种编码),它需要知道在XML中使用的编码。
由于最常见的编码与ASCII兼容,只要基本的字母和符号去,在这些情况下,声明本身可以逃脱只使用ASCII字符说的编码是什么。 在其他情况下,解析器必须试着找出该声明的编码。 因为它知道声明开头<?xml
更容易做到这一点很多。
最后,该version
属性指定的XML版本,其中有目前有两种(见维基百科XML版本 。有版本之间的细微差别,所以XML解析器需要知道它是什么处理。在大多数情况下(讲英语的人无论如何),1.0版就足够了。
XML声明并不是在所有的XML文件要求; 然而XHTML文档作者强烈建议在其所有文档中使用XML声明。 当文档的字符编码是比默认的UTF-8或UTF-16等这样的声明是必需的,没有编码,通过更高级别的协议确定的。 下面是一个XHTML文档的一个例子。 在这个例子中,XML声明包括在内。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Virtual Library</title>
</head>
<body>
<p>Moved to <a href="http://example.org/">example.org</a>.</p>
</body>
</html>
请参阅W3标准的XML 。
这是XML 可选序言。
version="1.0"
表示这是XML标准此文件符合 encoding="utf-8"
意味着文件是使用UTF-8编码的Unicode编码 编码声明标识了编码用于表示文档中的字符。
更多关于XML声明在这里: http://msdn.microsoft.com/en-us/library/ms256048.aspx
有人能指出我在书上或网站上,清楚地解释了这些基本知识?
您可以检查此XML教程结合实例。
但是关于编码的部分是什么? 为什么有此必要?
W3C提供解释关于编码:
“对XML文档的字符集和HTML 4.0是Unicode(又名ISO 10646)。这意味着,HTML浏览器和XML处理器应该表现为,如果他们使用Unicode的内部,但是这并不意味着文件必须以Unicode进行传输。只要客户端和服务器上的编码一致,他们可以使用,可以转换为Unicode任何编码...”
文档结构图中的XML声明包括以下内容:
The version number, ?xml version="1.0"?.
这是强制性的。 虽然数量可能会为XML的未来版本的变化,1.0是当前版本。
编码声明,
encoding="UTF-8"?
这是可选的。 如果使用的编码声明必须在XML声明中的版本信息后立即出现,并且必须包含代表现有的字符编码的值。