- s2 X) h) H3 \. V$ g+ R% H XML与HTML的设计区别是:XML是用来存储数据的,重在数据本身。而HTML是用来定义数据的,重在数据的显示模式。1 P# O0 ?& @! c5 P
5 \& B4 t- Y# F/ U
XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。* L# x3 D, m0 v4 @0 b
6 S( p" l/ j( \8 {; f" ~- {) e
为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。 1 }% B2 W0 y0 n! q, U% M1 q" ^: m( H5 K1 q( H) y8 Y: P& V: D5 |: B% p
因为XML是W3C制定的,XML的标准化工作由W3C的XML工作组负责,该小组成员由来自各个地方和行业的专家组成,他们通过email交流对XML标准的意见,并提出自己的看法 (www.w3.org/TR/WD-xml)。因为XML 是个公共格式, (它不专属于任何一家公司),你不必担心XML技术会成为少数公司的盈利工具,XML不是一个依附于特定浏览器的语言 , m1 j& b! N. d. b" U6 ~1 l m* T i XML英文解释 " s4 ~; J3 e, Z# s7 M' J+ A2 P* N The Extensible Markup Language (XML) is a general-purpose specification for creating custom markup languages.It is classified as an extensible language, because it allows the user to define the mark-up elements. XML's purpose is to aid information systems in sharing structured data, especially via the Internet, to encode documents, and to serialize data; in the last context, it compares with text-based serialization languages such as JSON and YAML.XML began as a simplified subset of the Standard Generalized Markup Language (SGML), meant to be readable by people via semantic constraints; application languages can be implemented in XML. These include XHTML,RSS, MathML, GraphML, Scalable Vector Graphics, MusicXML, and others. Moreover, XML is sometimes used as the specification language for such application languages.XML is recommended by the World Wide Web Consortium (W3C). It is a fee-free open standard. The recommendation specifies lexical grammar and parsing requirements. 5 k. G& O$ X9 `" ?[编辑本段]1 m( y2 m' }2 S3 Y
XML历史 XML是从1996年开始有其雏形,并向 W3C(全球信息网联盟)提案,而在1998二月发布为W3C的标准(XML1.0)。 XML的前身是SGML(The Standard Generalized Markup Language),是自IBM从60年代就开始发展的 GML(Generalized Markup Language)标准化后的名称。 3 b ~& ~0 u: B8 w8 T% B2 Q/ i( t GML的重要概念:) f0 |% D U" \% [* x
1 i# u2 G- e, m0 [
文件中能够明确的将标示与内容区隔;所有文件的标签使用方法均一致.' h& E3 O% ]& {
; u- m" G n+ G, d) `- A
1978年,ANSI将GML加以整理规范,发布成为SGML,1986年起为 ISO 所采用(ISO 8879),并且被广泛地运用在各种大型的文件计划中,但是SGML是一种非常严谨的文件描述法,导致过于庞大复杂(标准手册就有500多页),难以理解和学习,进而影响其推广与应用。 / q$ S j! u0 V B/ `/ p
& F9 o% V' R2 Q' d/ \ 于是,人们对SGML进行了简化衍生出 HTML。HTML 简单,在初期没有任何定义文档外观的相关方法,仅用来在浏览器里显示网页文件。而后,随着因特网的发展,人们为了控制其文件样式,扩充了描述如何显现数据的卷标。在 Netscape 与 Microsoft 之间的浏览器大战后, HTML 标准权威性遭受重大的考验,所幸,到了HTML 4.0时,W3C 又恢复了其地位。$ J0 ?5 D6 f9 J" d; L+ s
& G5 e/ s& @' X* b/ A9 L z同时W3C意识到HTML的原则: ; ^9 H9 g* M% @ 1 x8 K$ v. j, V4 J3 K 不能解决所有解释数据的问题 - 像是影音文件或化学公式、音乐符号等其它型态的内容。 0 ?! p5 ?5 Q6 e, z1 j" ^* O
" R, r; q- c& k& Q3 j, g 为了解决以上问题,专家们使用SGML精简制作,并依照HTML的发展经验,产生出一套使用上规则严谨,但是简单的描述数据语言:XML。 XML是在一个这样的背景下诞生的——是不是能有一个更中立的方式,让消费端自行决定要如何消化、呈现从服务端所提供的信息? ( Y9 `# w' b4 _8 [, H
% k9 ^: m# T# C. c* N4 H 而XML目的即在于提供一个对信息能够做精准描述的机制,藉以弥补 HTML 太过于表现导向的特质。 0 {% r4 A0 R8 D; r2 G0 R1 x3 U- l
[编辑本段] % M+ _) @8 Q8 R% @作用 丰富文件(Rich Documents)- 自定文件描述并使其更丰富 ) h1 w1 d( X- k8 S# w+ a) z
/ b4 M) o- M, ?' C* Q2 V J: V
属于文件为主的XML技术应用 , c/ I& V* S7 z" g5 K2 M
0 {" m" J/ d, w$ E ^
标记是用来定义一块数据应该如何呈现 d/ }( n- }: i1 O) Z* y' b, J) {
6 g6 Q, N* Z6 X( }9 |9 K 解释数据(Metadata)- 描述其它文件或在线信息 % m: N0 @9 w4 n" \: ^/ Q# V: f6 B3 M! L
属于数据为主的XML技术应用 f/ N9 L$ N7 Q P& \ 2 B* a$ ~& e$ H. T 标记是用来说明一块资料的意义 ' {) V o/ b4 x' `6 w8 o 7 c* C* p2 J( w! u* X# U 组态档案(Configuration Files)- 描述软件的组态参数 6 x* f: s! ]7 S2 Y# }
[编辑本段]; C5 b, S1 S' n8 }
简明语法 SGML常用来定义针对HTML的文档类型定义(DTD),同时它也常用于编写XML的DTD。SGML的问题就在于,它允许出现一些奇怪的语法,这让创建HTML的解析器成为一个大难题:6 A) b5 j' `/ @$ o3 S$ i
h8 h5 C; ]3 ^- k T 1 某些起始标签不允许出现结束标签,例如HTML中<img>标签。包含了结束标签就会出现错误。 # T' g3 T r8 D( P# p- `, b: T# B2 P1 M
2 某些起始标签可以选择性出现结束标签或者隐含了结束标签1 M8 w2 T2 K6 k& t3 H
. B, y" X6 z- s4 P7 I
3 某些起始标签要求必须出现结束标签,例如HTML中<script>标签。2 Y/ u: v) [; n$ `: P. \: a
, F/ L* m ]; j( ~$ p
4 标签可以以任何顺序嵌套。即使结束标签不按照起始标签的逆序出现也是允许的,例如,This is a sample string是正确的。 * b5 F+ [. }9 i7 e7 @4 O; J5 s, C
5 某些特性要求必须包含值,例如<img src="picture.jpg">中的src特性。0 H G+ K; k5 \1 j, g; f
% a; k) d- X+ }2 g: ? 6 某些特性不要求一定有值,例如中的nowrap特性。( n; e5 G7 O, c. M W3 y; \$ a
4 }2 |9 K g2 k( Q- u2 P 7 定义特性的两边有没有加上双引号都是可以的,所以<img src="picture.jpg">和<img src=picture.jpg>都是允许的。5 x* s$ n% g8 f: ]" J
' Y g! |1 V" x4 e: [
这些问题使建立一个SGML语言的解析器变成了一项艰巨的任务。判断何时应用以上规则的困难导致了SGML语言的定义一直停滞不前。以这些问题作为出发点,XML逐渐步入我们的视野。 $ P9 p2 z8 `3 ~4 R" x% p" R6 _$ k6 b/ I0 Y4 c
XML去掉了之前令许多开发人员头疼的SGML的随意语法。在XML中,采用了如下的语法: . R) Y4 p0 f2 F& l0 D, I ! d6 z/ P7 M: V# C$ q9 i r/ {/ ^ 1 任何的起始标签都必须有一个结束标签。 9 k- M& p$ k$ M$ r- ^) c$ M' B: B2 Z u% n. {
2 可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签。这种语法是在大于符号之前紧跟一个斜线(/),例如<tag />。XML解析器会将其翻译成<tag></tag>。 ( I3 U' G, ~$ ]* k* H# P! { ! X$ c) b+ G* i `. R. Y( O 3 标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签,例如this is a sample string。这好比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有的内部括号之前,是不能关闭外面的括号的。 2 s$ `- G! K, A% M* f6 U/ s: N; _; { }0 c% t
4 所有的特性都必须有值。 # _, X! V- V% \9 s. [: v2 N& ?% ~" y! J" r( l% }- }
5 所有的特性都必须在值的周围加上双引号。' q3 k: f# ^7 q& I# U' `2 @
" x n4 N% J! _ 这些规则使得开发一个XML解析器要简便得多,而且也除去了解析SGML中花在判断何时何地应用那些奇怪语法规则上的工作。仅仅在XML出现后的前六年就衍生出多种不同的语言,包括MathML、SVG、RDF、RSS、SOAP、XSLT、XSL-FO,而同时也将HTML改进为XHTML。! f. J/ I8 ~% B5 Z