XML资源

XML 资源:
1。W3C 的网站
http://www.w3.org/XML/

2。XML.com
http://www.xml.com

3。xml zone
http://www.xml-zone.com

4。XML.org
http://www.xml.org

5。XML Cover Pages
http://xml.coverpages.org

6。OASIS
http://www.oasis-open.org

7。XMLINFO.com
http://www.xmlinfo.com

8。STARTKABEL
http://xml.startkabel.nl

9。XMLAdvantage
http://www.xmladvantage.com

10。Chinese XML Now!
http://www.ascc.net/xml/

11。simonstl.com
http://www.simonstl.com

12。XML ARENA
http://www.xmlarena.com

13。XML 资源目录
http://www.xmldir.com/

14。XML Tree
http://www.xmltree.com

XML 教程:
1。XML FAQ
http://www.ucc.ie/xml/

2。无废话 XML -- 网上最好的 XML 入门教程
http://2tigers.net/xml_book/wfhxml_gb.zip

http://www.xml.org.cn:8188/docs/download/wfhxml_gb.zip

http://www.helpwork.net/downdata/bo...k/wfhxml_gb.zip

3。XML Bible
http://www.ibiblio.org/xml/books/bible/

http://www.mmg.vmei.acad.bg/xml/

《XML Bible》的中译本为中国水利水电出版社的《XML实用大全》一书,XML 中国论
坛已将此书做成了电子版共享,请看这里:
http://www.xml.net.cn/ASPs/book_catalog.asp?bookid=02

在此向 XML 中国论坛所做出的努力表示由衷的感谢!
4。IBM 站点上的 XML 教程 (需注册)
http://www.ibm.com/developerworks/xml/

http://www.ibm.com/developerworks/e...ecourse-bytitle

http://www.ibm.com/developerworks/webservices/

http://www-900.ibm.com/developerWorks/xml/

(IBM 的 DeveloperWorks 中文版上的 XML 专栏,强烈推荐!)
5。W3Schools.com
http://www.w3schools.com

6。zvon.org
http://www.zvon.org

7。xmlpitstop.com
http://www.xmlpitstop.com

8。Cafe con Leche XML News and Resources
http://www.ibiblio.org/xml/

9。一个免费 XML 教程的列表
http://www.intelinfo.com/newly_rese...aining/XML.html

比较好的 XML 编辑器:
1。XML Spy
http://www.xmlspy.com

2。EditML Pro
http://www.editml.com

3。PSGML for Emacs
http://sourceforge.net/projects/psgml/

与 XML 技术有关的软件项目:
1。支持 XML 的浏览器 -- Mozilla

http://www.mozilla.org/newlayout/xml/

2。Apache 基金会的 XML 项目
http://xml.apache.org

3。Apache 基金会的 Jakarta 项目
http://jakarta.apache.org

4。可用的 XML 软件列表
http://www.xmlsoftware.com

5。可用的 XML 软件列表
http://www.oasis-open.org/cover/publicSW.html#xmlTools

6。XML hack
http://xmlhack.com

7。Sun 站点上的 XML 软件
http://www.sun.com/xml/

http://www.sun.com/software/xml/

http://www.sun.com/xml/developers/

http://java.sun.com/xml/

8。IBM 站点上的 XML 软件
http://www.ibm.com/developerworks/xml/

9。Oracle 站点上的 XML 软件
http://technet.oracle.com/tech/xml/

10。XSLT.com
http://www.xslt.com

11。SOAP & WebServices
http://www.soap-wrc.com

http://www.soapware.org

12。XML-RPC
http://www.xmlrpc.com

13。WDDX

http://www.openwddx.org

14。Komodo
http://aspn.activestate.com/ASPN/Downloads/Komodo/More

15。XML with Java
http://developerlife.com

http://www.jdom.org

16。XML with Perl
http://www.perlxml.com

17。XML with C
http://www.xmlsoft.org

18。Free XML Tools and Software
http://www.garshol.priv.no/download/xmltools/

电子商务:
1。ebXML

http://www.ebxml.org

2。UDDI
http://www.uddi.org

http://uddi-china.org

3。XML/EDI
http://www.xmledi-group.org

补充一些:

一. XML的大本营
XML是由W3C(World Wide Web Consortium)国际组织负责开发和制定标准的。关于XML
最权威,最新的消息都来自W3C。网址是:http://w3c.org/XML/
另外一个名为OASIS的前著名的SGML研究组织也在一起推动XML的发展,网址是:http
://www.oasis-open.org/
二. XML指南
http://www.w3.org/TR/REC-xml
W3C关于XML规范的详细,完整的说明。不用多说,绝对权威。
http://www.xml.com/axml/testaxml.htm

这是Tim Bary写的XML规范说明书,非常的详细和严密,是学习XML规范的好帮手。

三. XML常见问题
Peter Flynn的 XML FAQ
http://www.ucc.ie/xml/
包含大量详细的资料,经常更新,由W3C协会XML组维护。
Lisa Rein’s finetuning XML FAQs
http://www.finetuning.com/faq.html
这个FAQ列表有侧重点,主要包含XSLT FAQ,XPath FAQ和IE5中的XSL FAQ。
Dave Pawson’s XSL FAQ
http://www.dpawson.co.uk/xsl/idx.html
提供最好的关于XSL方面的FAQ,创建于1999年。
jGuru’s Extensible Markup Language (XML) FAQ
http://www.jguru.com/jguru/faq/faqpage.jsp?name=XML
这个FAQ列表是一个典型的"老百晓",任何问题,从普通的到非常细节的XML问题都可
以在这里找到。
Ronald Bourret’s XML Namespaces FAQ
http://www.informatik.tu-darmstadt.de/DVS1/staff/bourret/xml/
NamespacesFAQ.htm
创建于2000初,是关于namespaces概要的FAQ。

四. XML主题网站
http://www.xml.com/
一个以XML为主题的内容丰富的网站
http://www.xml-zone.com/
另一个比较知名的XML网站,提供XML的新闻和资讯。
http://www.xmlinfo.com/
网站创建者James Tauber’s是W3C组织XML发展组的成员之一,他的网站提供了大量
的连接和例子。
http://www.simonstl.com/
网站创建者Simon St. Laurent也是XML发展组的成员。他是W3C中XML初级入门教程的
作者,他的站点主要提供有关XML的发展信息。
http://msdn.microsoft.com/xml/c-frame.htm#/xml/default.asp
微软的MSDN关于XML的主题网站。微软在推进XML应用方面不遗余力。
http://www.xmlsoftware.com/
是XML info的姐妹网站,内容包括XML/DTD/XSL编辑软件,XML API软件等。
http://xmlhack.com/
1999年9月建立的大型XML新闻网站,同时提供XML人才信息。
http://xml.apache.org/
Apache软件基金会(ASF),提供了大量open source的XML和XSL的工具软件。
http://www.biztalk.org/
BizTalk是微软发起的以XML商业应用为目标的组织。BizTalk不是一个标准组织。

五. XML的编辑软件
目前XML文档的编辑软件依然很少。虽然我们可以手工编写,但是如果有一个好的软
件(类似用DW/FP编写HTML),可以减少差错和提高效率。下面是现有的一些编辑软件

http://www.macromedia.com/software/dreamweaver/
Macromedia最新的Dreamweaver 4.0已经支持XML文档的编写。推荐使用。
http://www.microsoft.com/xml/notepad/intro.asp
微软在这方面向来不会落后,它推出的XML Notepad是一个非常小巧灵活的XML文档编
辑器。推荐使用。
http://www.adobe.com/prodindex/framemaker/prodinfosgml.html
Adobe公司的Framemaker plus是目前较好的XML编辑软件。
http://www.arbortext.com/
Arbortext公司是重点开发XML游戏的公司。
http://www.inso.com/
Inso,好象是用来处理大型SGML或者XML文档的软件。
http://www.softquad.com/
Softquad 是HTML和SGML软件的开发商,对XML自然不会放过。

六. 支持XML的浏览器
http://www.microsoft.com/windows/ie/
IE 5.X是目前流行浏览器唯一支持XML的,它可以在微软的网站免费下载到。

http://developer.netscape.com/software/communicator/ngl/
index.html?cp=dev09fg01
Gecko是另一种支持XML的浏览器,但目前只是测试版。

七. XML parser
Parser是一个检查XML文档语法是否符合DTD定义,并进行解析的软件。

在线的parser
http://validator.w3.org/
W3C组织提供的一个在线paeser。可以根据你在线提交的XML文档URL,进行验证和解
吸。
http://www.stg.brown.edu/service/xmlvalid/
一个Brown大学科技小组提供的parser,非常方便和容易理解。。
可下载的Parser
有很多可以下载到本机上运行的parser,下面列出一些主要的:
http://www.jclark.com/xml/expat.html
James Clark是在SGML/XML领域的元老,他写的parser被广泛的运用。
http://www.alphaworks.ibm.com/tech/xml
一个以Java语言编写的Parser,来自IBM。
http://www.microsoft.com/xml/parser/cparser.asp

微软的XML Parser,用C++写成。

http://www.microsoft.com/downloads/details.aspx?FamilyId=0CDD34BF-50EA-4238
-846B-243C58FF224A&displaylang=en

用Python写的parser。
http://www.jeremie.com/Dev/XML/
用javascript写的parser,只用来检查语法,不进行解吸析。
http://w3c.org/RDF/Implementations/SiRPAC/

来自W3C组织的SiRPAC,全称是Simple RDF Parser and Compiler。

八. Schema编辑软件
Schema我们前面介绍过,DTD就是一种Schema,我们可以手工写DTD,但现在已经有一
些Schema编辑软件来帮助我们更方便的建立DTD。
http://www.extensibility.com/
Extensibility这个软件被称为XML权威。可以以图形化方式建立和编辑schema,包括
DTD文件。

九. 国内XML资源
http://www.xml.net.cn/ (admin注:该网站已不能访问了.)
XML中国论坛是一个非赢利的学术网站。由北京大学计算机科学与技术研究所创办,
北大方正集团公司提供赞助。
http://www.xml.org.cn:8188 (admin注:该网站已不能访问了.)

北大方正集团公司提供赞助。
http://www.xml.org.cn:8188 (admin注:该网站已不能访问了.)
中国XML联盟将建立为国内第一个开放性网络标准组织,提供XML技术认证、咨询和交
流。由上海易方公司赞助。
http://www.xml.com.cn/
chinaasp.com的子站,提供XML文章和技术交流等。
http://www.egroups.com/group/china_xml_list/info.html
中国XML邮件组包括中文XML资源, XML的最新资料,同行的交流空间。由非盈利性组织
中国XML联盟负责维护。
http://weblab.crema.unimi.it/xmlzh/XML_FAQ.htm

具体的链接在进一步编辑中,
以上内容为网友 zengyi 提供,
先 发出来 供参考
其中若有链接无法打开,请用Google 搜索最新信息

--

我家的狗跟了我16年了^_^

发信人: [email protected] (God is a girl!!), 信区: XML
标 题: 我的XML學習[基础入门专题]
发信站: 飘渺水云间 (Thu Sep 23 12:44:12 2004)
转信站: USTC!netnews.sdu!Freecity

寫XML文件

定義標記

1<book>
2<title>XML</title>
3<author>lisongtao</author>
4</book>

主要是注意語法的套用
用CSS來顯示XML:
1.XML
--------------------------------------------

''連接CSS樣式表

1<lisongtao>   
2Hello the world!   
3</lisongtao>

---------------------------------------------
1.CSS

----------------------------------------
lisongtao {display: block; font-size: 48pt; font-weight: bold;}

用XLS來顯示XML:
1.XML
--------------------------------------------

''''連接XLS

1<lisongtao>   
2Hello the world!   
3</lisongtao>

---------------------------------------------
2.xsL
----------------------------------------

 1<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> ''定議模板   
 2開始   
 3<xsl:template match="/"> ''根標記   
 4<html>
 5<head>
 6<title>hello the world</title>
 7</head>
 8<body bgcolor="#CCCCFF">
 9<h1 align="center"><xsl:value-of select="lisongtao"></xsl:value-of></h1>''子節點   
10</body>
11</html>
12</xsl:template>
13</xsl:stylesheet>

XML 的注釋和JS一樣.

1<books>
2<book>
3<name>xml应用</name>
4<author>list1</author>
5<price>55.00</price>
6</book>
7</books>

帶屬性的XML節點

1<books title="list">
2<book>
3<name>xml and asp</name>
4<price>45.00</price>
5<publisher>tsinghua </publisher>
6</book>
7</books>

特殊標記的用法:

1<books height="6'5'">
2<book width='6"5"'>
3<name>list &amp;lisongtao</name>
4<author>lisongtao &lt; [email protected]&gt;</author>
5</book>
6</books>

XML中的中文標示:

<好人 >

1<name>小鞋子</name>

DTD的使用一例
1.DTD

=====================
DTD.XML

1<book>
2<name>lisongtao</name>
3<price>11.2</price>
4</book>

把DTD写在XML文件里面

]>

1<book>
2<price>11.2</price>
3<name>lisongtao</name>
4</book>

节点的多属性

1<books>
2<book author="list1" name=" xml应用" price="55.00">
3</book>
4</books>

可缺省的结束标记的方法

1<books>
2<book author="list1" name=" xml应用" price="55.00"></book>注意这里多了个"/"   
3  
4</books>

CDATA文件标记的用法一例

 1<books>
 2<![CDATA[   
 3<book>   
 4<name>xml应用</name>   
 5<author>list1</author>   
 6<price>55.00</price>   
 7</book>   
 8]]>
 9<book>
10<name>xml应用</name>
11<author>list1</author>
12<price>55.00</price>
13</book>
14</books>

经过以上的学习.总算写出一个标准的XML文件

 1<choose_system>
 2<students>
 3<student id="984610" lesson_id="11">
 4<name>栗松涛</name>
 5<age>25</age>
 6<sex>男</sex>
 7<department>自动化</department>
 8</student>
 9<student id="984611" lesson_id="12">
10<name>李未</name>
11<age>26</age>
12<sex>男</sex>
13<department>自动化</department>
14</student>
15<student id="984612" lesson_id="11">
16<name>张红</name>
17<age>23</age>
18<sex>男</sex>
19<department>自动化</department>
20</student>
21<student id="984613" lesson_id="12">
22<name>李亮</name>
23<age>25</age>
24<sex>男</sex>
25<department>自动化</department>
26</student>
27</students>
28<lessons>
29<lesson id="11">
30<name>控制原理</name>
31<num>12</num>
32<les_start>99.2</les_start>
33<les_end>99.7</les_end>
34<end_method>考试</end_method>
35</lesson>
36<lesson id="12">
37<name>网络原理</name>
38<num>11</num>
39<les_start>99.3</les_start>
40<les_end>99.6</les_end>
41<end_method>通过</end_method>
42</lesson>
43</lessons>
44<teachers>
45<teacher id="1122" lesson_id="11">
46<name>江华</name>
47<age>33</age>
48<tea_age>3</tea_age>
49<rank>教授</rank>
50<publish>控制原理</publish>
51<sex>男</sex>
52</teacher>
53<teacher id="1123" lesson_id="12">
54<name>刘佳</name>
55<age>40</age>
56<tea_age>7</tea_age>
57<rank>副教授</rank>
58<publish>网络原理</publish>
59<sex>男</sex>
60</teacher>
61</teachers>
62</choose_system>

--

1<name>江华</name>
1<age>33</age>
1<tea_age>3</tea_age>
1<rank>教授</rank>
1<publish>控制原理</publish>
1<sex>男</sex>
1<teacher id="1123" lesson_id="12">
2<name>刘佳</name>
3<age>40</age>
4<tea_age>7</tea_age>
5<rank>副教授</rank>
6<publish>网络原理</publish>
7<sex>男</sex>
8</teacher>

--

我家的狗跟了我16年了^_^

发信人: [email protected] (God is a girl!!), 信区: XML
标 题: 推荐:想了解 XML是什么 的网友读的第一本书---XWfor
发信站: 飘渺水云间 (Thu Sep 23 12:45:38 2004)
转信站: USTC!netnews.sdu!Freecity

XML handbook》中文版也叫作《XML手册》
也以出版的是 第四版,电子工业出版社 出版,¥69.00 (附二碟)
----------------------------------------------------
该书的简介:
http://www.china-pub.com/computers/common/info.asp?id=12865

本书是XML之父Charles F. Goldfarb所著的权威XML系列图书之一“The XML Handbook
”的最新版本。本书结合大量应用实例,全面介绍了XML。全书共分18个部分。从对
概念和基础技术层面的铺垫入手,介绍了XML的发展历史、基本思想、最基本问题、
XML对网络通信和计算机与计算机通信的影响,进而重点阐述了XML的不同应用领域,
主要包括三层应用程序、电子商务、集成、内容管理、门户、出版、数据库、内容采
集、模式与设计、语音、语义Web、Web服务和XML在应用程序基础构架中的作用。继
而回归XML技术主题,介绍了有关XML的三个基本教程。分别包括XML基础知识、文档
类型定义的创建、实体、XML的高级特征以及XML规范等核心教程内容;名称空间、数
据类型以及XML模式等教程内容;XPath,XSLT,XSL-FO,XPointer以及XLink等变换
和导航教程内容。最后以资源部分作为本书的结束。
---------------------------------------------------

本书是XML之父Charles F. Goldfarb所著的权威XML系列图书之一“The XML Handbook
”的最新版本。本书结合大量应用实例,全面介绍了XML。全书共分18个部分。从对
概念和基础技术层面的铺垫入手,介绍了XML的发展历史、基本思想、最基本问题、
XML对网络通信和计算机与计算机通信的影响,进而重点阐述了XML的不同应用领域,
主要包括三层应用程序、电子商务、集成、内容管理、门户、出版、数据库、内容采
集、模式与设计、语音、语义Web、Web服务和XML在应用程序基础构架中的作用。继
而回归XML技术主题,介绍了有关XML的三个基本教程。分别包括XML基础知识、文档
类型定义的创建、实体、XML的高级特征以及XML规范等核心教程内容;名称空间、数
据类型以及XML模式等教程内容;XPath,XSLT,XSL-FO,XPointer以及XLink等变换
和导航教程内容。最后以资源部分作为本书的结束。
---------------------------------------------------
我在我们学校的图书馆有看到这本书,
挺不错的,通俗易懂,
但有个问题 书中的很多链接都已过期了,
(有新版的话,我会去买一本的)
当然这并不影响你去 理解 XML 的精髓,

--

我家的狗跟了我16年了^_^

发信人: [email protected] (God is a girl!!), 信区: XML
标 题: xml常见问题{收集新手常问的东西}
发信站: 飘渺水云间 (Thu Sep 23 12:46:57 2004)
转信站: USTC!netnews.sdu!Freecity

A.概述性问题
A.1 什么是XML?
XML 全称是“可扩展标识语言“(Extensible Markup Language)。之所以称之
为可扩展,是因为它不像HTML 那样只有固定的形式。它是被用来使SGML 能在万维网
上能应用自如。
XML并不是一个独立的,预定义的标识语言。它是一种元语言。它是用来描述其
他语言的语言。它允许你自己设计你的标识。(HTML 是一种预定义的标识语言。HTML
只是在一类特定的文件中定义了一种描述信息的方法。而XML 能允许你在不同的文
件中定义你自己设计的标识语言。)这是因为XML 是用SGML (“通用标识语言标准
”国际标准的标识元语言)书写的。
A.2 XML的目的是什么?
XML是被设计用来使SGML 能在万维网上能自如应用的:方便地定义文件类型,方
便地制作和管理用SGML定义的文件,在网上方便地传输和共享这些文件。
A.3 什么是SGML?
SGML的全称是“Standard Generalized Markup Language“(通用标识语言标准
)。它是国际上定义电子文件结构和内容描述的标准。在往上有以下相关资源:
SGML FAQ: http://www.infosys.utas.edu.au/info/sgmlfaq.txt

SGML 主页: http://www.oasis-open.org/cover/sgml-xml.html
A.4 什么是HTML?
HTML的全称是“HyperText Markup Language “(超文本标识语言)。它是SGML
在网络上的一个特殊应用。
A.5 XML,SGML,HTML是不是一回事?
不竟然。SGML是XML和HTML的母语言。SGML的覆盖面很广。它几乎涉及人们生活
的每一个领域。它被用来描述成千上万中文件。HTML只是其中一种文件类型,是一种
在网上最常用的类型。它定义了一种简单而固定且含标识的文件类型。
XML是SGML的简化版。为了实现更加方便地编写和理解应用程序,更加方便地在
网络上传输信息,更加方便地实现互操作性,XML申略了一些SGML中复杂和不常用的
部分。但XML还能和SGML一样通过解析。
A.6 SGML/XML 和C/ C++?什么不同?
C和C++和Fortran, Pascal, Basic, 或是Java一样都是编程语言。是用来制定运
算和操作的。
而SGML和XML标是说明性的语言。它们是用来表现信息的。它们使得信息能被程
序正常地存储传输和处理。就它们本身而言,并不能产生什么操作。操作要由应用程
序来实现。
A.7 是由谁负责XML?
XML是W3C(World Wide Web Consortium 万维网络联盟)的一个项目。XML不是任
何一家公司的私有财产。
A.8 为什么XML是一项重要的技术?
应为它解决了两个制约网络发展的问题:

1.基础是单一固定的文件类型。(HTML);
2.完整的SGML过于复杂。
A.9 为什么不只是扩展HTML?
不同的厂家在开发HTML时产生了许多有趣但却不兼容的发明。这已使HTML不堪重
负。因为这使得你只能用一种方法表现你的信息。XML却允许许许多多的个人与组织
来创造他们自己的标识语言。应用这些标识语言他们可以在自己的领域内自由地交换
信息。HTML在表现信息方面是有缺陷的。当然我们必须承认它现在仍然扮演着重要的
角色。但许多新的应用领域需要更加强大和灵活的工具。
B.SGML的使用(包括HTML的各种浏览器)
B.1 为什么我们要推荐XML而不主张HTML?
1.我们可以用XML设计自己的文件类型。
2.信息的内容将更加丰富,更加方便使用。在XML中超文本链接的能力比HTML更
强。
3. XML能使得浏览器的表现形式更加丰富。
4.处理XML文件比.处理SGML文件来得简单。信息的开放性和重复使用的性能斗将
提高。
5.合法(Valid 参见D中Valid与-formed)的XML文件在SGML中也是合法的。
B.2 我是不是必须由SGML或是HTML转向XML?
不是的。现存的SGML和HTML的应用软件仍能正常处理现有的文件。
C. SGML 和HTML的编写
C.1 XML是否已取代了HTML?
没有。XML并没有取代HTML。它只是给了你一种新的选择。HTML将仍在一段时间

内广泛地被使用。HTML的DTD(参见C中DTD)将既有XML版本,又有SGML版本。但XML
版本更加简单。
C.2 XML文件是怎样的?
它的基本结构和SGML和HTML差不多。XML文件可以非常简单。它可以不需要文件
类型说明,而直接就是你自己设计的内嵌式标识。如下面一段代码:

1<conversation>
2<greeting>Hello, world!</greeting>
3<response>Stop the planet, I want to get off!</response>
4</conversation>

当然它也可以更加复杂些。如DTD声明,内嵌子集,等等:

]>

 1<titlepage>
 2<white-space amount="36" type="vertical"></white-space>
 3<title alignment="centered" font="Baskerville" size="24/30">Hello, world   
 4!</title>
 5<white-space amount="12" type="vertical"></white-space>
 6<!-- In some copies the following decoration is hand-colored, presumably   
 7by the author -->
 8<image alignment="centered" location="http://www.foo.bar/fleuron.eps" type="URL"/>
 9<white-space amount="24" type="vertical"></white-space>
10<author font="Baskerville" size="18/22" style="italic">Vitam capias</author>
11</titlepage>

C.3 是不是HTML有一个XML版本?
已经有好几个HTML的XML版本,但都只是在准备阶段,并未完成。
C.4 既然说XML是SGML的子集,我能不能用SGML的工具直接处理XML文件?
是的.而且非常简单。一个结构完整的XML文件和HTML文件非常相像。当然也有一
些小的而且是重要的不同。在实际操作当中最大的不同就是XML文件必须摇遵守一定
的法则。HTML的浏览器可以允许一些小的错误。而如果是XML就行不通了。
C.5 什么是DTD?我能在哪儿找到?
DTD的全称是“Document Type Definition“(文件类型定义)。具体地说,DTD
是一个或是一些用XML书写的文件。它包含了对一种文件的正式定义。它定义了文件
中的元素能用什么名字,能放在什么位置,应该怎样组合。在这里举一个简单的例子
。比如说你想要你的文件可以描述一组

  1<list>,其中每个<list>由可以包含若干个&lt;   
  2Item&gt;。那么你的DTD中应该有以下语句:<!--ELEMENT List (Item)+-->
  3<!--ELEMENT Item (#PCDATA)-->   
  4这样一个框架定义了一个表(list),它可以包含若干个项(items)。每一个项   
  5只能包括文本的内容。当处理器处理XML文件时将自动检查DTD,以此确定文件中元素   
  6从哪而来,以及它们之间是什么关系。上面的框架允许你生成下面的一个表:   
  7<list><item>Chocolate</item><item>Music</item><item>Surfing</item></list>   
  8而这样一个表在屏幕上是怎样一个表象,取决于你的样式表(Stylesheet)。在HTML   
  9中你要在文件中指定应是怎样的形式。使用DTD表明你能够确定一类文章的结构和格   
 10式。   
 11要想找一个DTD看看吗?实际上,各个领域里的SGML DTD由成千上万。你可以参   
 12看SGML 的网页。   
 13C.6 我总是听说DTD的替代者Schema,它到底是什么?   
 14有许多XML的开发者并不满意XML的规范。原因有两点:   
 151.既然XML在说明结构信息是有很多好处,那么用来描述文件类型的结构的文件   
 16(这就是Schema)为什么不是也用XML书写的呢?这样做的好处不光是统一,而且便   
 17于用正规的文件工具编辑管理Schema。   
 182.过去的DTD对数据的限制不够。比如说你想要一个元素只取负值,或是必须有   
 19一个值,DTD很难做到。   
 20C.7 我能用XML作算术运算吗?   
 21只要你的文件类型提供算术类型,知识可以的。W3C已经有了一个MathML(Mathematical   
 22Markup Language数学标识语言)的计划。清参看W3C最新(1999年7月)发布的MathML   
 23规范。   
 24C.8 在XML中,我能使用Java, ActiveX吗?   
 25这取决于浏览器制造者运用的工具. XML是用来描述信息的; 描述性语言和用来   
 26描述内嵌函数功能的语言的目的是使得信息能在客户端被操作.. XML本身提供了一种   
 27定义标识的方法,而这些标识是描述性语言所必需的. XML是一个中立的标准.他不支   
 28持或是反对任何一种描述性语言.所以说它是一个开放的领域. 描述性语言是在”Extensibl   
 29
 30
 31e   
 32Style Language”XSL (可扩展类型语言).计划中提出的.   
 33C.9 我能用Java编写或是管理XML文件吗?   
 34可以.我们可以用任何一种编程语言从任何一种XML格式的信息中提取数据.   
 35D.高级开发者和应用者(包括网络管理员和服务器操作人员)   
 36D.1哪儿可以找到XML的规范?   
 37请参见: http://www.w3.org/TR/REC-xml   
 38D.2 "DTDless" ,"valid",和"well-formed"这些术语是什么意思?   
 39在完整的SGML中,我们用DTD描述特定文件中的各种标识.但DTD的生成是一件极其   
 40复杂的工作.所以XML被设计成可以缺省DTD. DTDless表示您可以创造一个标识而不需   
 41正式的定义.当然这也要付出代价.您不能在其他的文件中对同样的形式采用自动的处   
 42理. DTDless的文件是以一种非正式的方式定义它的标识的.标识是在哪儿出现的就在   
 43哪儿定义它.但当一个比方说是浏览器的XML应用程序打开了一个DTDless的文件,它必   
 44须要有办法来理解文件的结构.但它又没有DTD,所以规则上有了一些改变. 举一个例   
 45子:   
 46HTML中的<img/> 是被定义为”EMPTY”(空)的.它并不需要”end-tag”(结尾标签   
 47). DTD 的XML应用程序在打开一个缺省DTD. 的文件,读到<img/>时不知道是否需要一   
 48个”end-tag”.所以”well-formed”(结构良好)的定义也变得重要了. ”well-formed   
 49”可以使得一般元素和”EMPTY”元素区分开来.   
 50D.2.1 ”well-formed”(结构良好的)文件   
 511.如果一个文件没有DTD,它必须在开头处有一个"Standalone Document Declaration   
 52"(独立文件声明):   
 53
 54
 55<?xml version="1.0" standalone="no" encoding="UTF-8"?>
 56<foo>   
 57. <bar> ...<blort></blort>...</bar>
 58</foo>   
 592.除了空素以外, 标记必须前后匹配.   
 603.所有的”attribute”值都要用引号括起来.   
 614\. ”EMPTY”元素的tag要么用”/&gt;”结尾,要么要补成”non-EMPTY”(非空)的   
 62元素. 比如说: <br/>要么写为<br> 或是<br/>   
 635.文件中必须不能出现”markup-start “(标识开始符), 比如”&lt;”或是“&amp;”   
 64.   
 656.元素必须遵守SGML的规则,正确嵌套.   
 66D.2.2”Valid “(合法的)XML   
 67合法的XML是指有DTD的文件.它必须是”well-formed”的.   
 68D.3 在DTD中,我什么时候用属性, 什么时候用元素?   
 69这并没有唯一的答案.着取决于您设计文件的风格.以下是两个极端的例子,它们   
 70的功能是一样的:   
 711\. <l n="184"><sp>Portia</sp><text>The quality of mercy is not strain   
 72’d,</text></l>   
 732\. <line speaker="Portia" text="The quality of mercy is not strain’d   
 74">184</line>   
 75D.4 SGML 和XML之间还有什么区别?   
 76主要的区别在于DTD的内容.为了简化语法和编写软件的过程, XML中对SGML做了   
 77
 78
 79很大缩减.   
 80D.5 现在有哪些XML的软件可以使用?   
 81由于更新速度太快,我们建议您参看: http://www.oasis-open.org/cover/xml.   
 82html.   
 83D.6 要使用XML,我是否要改变服务器的软件?   
 84要的,但改动不大.您只要编辑您的mime-types文件,加上以下一句:   
 85application/xml xml XML   
 86  
 87  
 88经典问答   
 89  
 90一.HTML已经这样流行了,为什么还要发展XML?   
 91  
 92简单地讲,HTML不能完成,我们希望XML所要完成的任务。原因很简单,XML所要   
 93完成的任务,必须由元置标语言来完成,而HTML只是一个实例置标语言。 在XML发布   
 94之前,国际互联网的发展受到HTML如下几个问题的束缚:   
 951) HTML无法描述数据内容,而这一点恰恰是数据检索、电子商务所必须的。   
 96  
 972) HTML对数据表现的描述能力是十分不够的,如HTML还不能描述矢量图形、   
 98科学符号等对象,目前只能通过图象来表现这些对象。   
 993) HTML实例置标语言的地位,完全不能适应对新标记需求的发展需要。   
100XML的出现,使上述问题都得到很好的解决。   
101
102
103试想在互联网世界,如果大家都讲方言,互相交换信息时都要进行翻译,那将是   
104一个多么难以沟通和交流的世界。在互联网世界,XML之所以重要,恰恰是由于它扮   
105演了"国际语言"角色的缘故。此外,XML更为互联网世界提供了定义各行各业的"专业   
106术语"的工具。   
107  
108二.如何在浏览器中阅读XML?   
109  
110阅读XML文档的工具一般称为XML解析器, 也称为XML处理器。 XML处理器将数据   
111传送到应用软件, 以便处理, 出版, 查询, 或显示。XML不给应用软件提供 应用程序   
112接口 (API), 它只是把数据传给应用软件. XML处理器不解析非构造良好的数据。 Netscape   
113和 Microsoft 都已经将XML解析器包含在其浏览器中。 XML开发者团体提供免费的   
114XML阅读器和解析器, 以便在应用软件或XML制作软件中进行应用。   
115  
116三.为什么要使用XML而不是HTML?   
117  
118比较重要的原因有以下六条:   
1191)作者和供应商能使用XML设计自己的文档类型,不必被HTML所约束。   
120  
1212)由于XML的超文本链接能力比HTML强得多,XML提供的信息内容比   
122HTML更丰富,也更易于使用。   
1233)XML能提供更多更好的机制方便浏览器的信息表现和优化性能。   
1244)XML舍弃了SGML的复杂性,因此编写处理XML的应用程序会很容易。   
125
126
1275)信息易于存储,可重复使用。   
1286)XML文件在SGML环境中也可使用,不一定要局限于在WEB中使用。   
129  
130四.可以用Java创建和管理XML文件吗?   
131  
132是的,任何程序设计语言都能被用来从XML形式的源文档中输出数据。已经出现   
133了许多的前端和后台工具使得程序设计和数据管理更加方便。下面两个网址有更加详   
134细的说明: http://www.markwatson.com/XMLdb_0_1.htm http://developerlife.com   
135  
136  
137五.为什么XML文件的分析结果出现乱码?   
138  
139这是由编码问题引起的。XML标准规定,XML分析器必须支持“UTF-8”和“UTF-   
14016”编码,而且必须能够自动区分这两种编码的文件,对于其他编码(包括常用的中   
141文编码“GB2312”或“BIG5”)并不要求支持。如果XML文件中包含编码声明,分析   
142器则按照声明的编码进行处理,否则就按照识别结果进行处理(识别的结果总是“UTF   
143-8”和“UTF-16”中的一种)。因此,如果XML文件的编码在这两种之外,你必须在   
144XML文件前加上编码声明,如:<?xml version="1.0" encoding="gb2312"?>就表示XML   
145文件的编码是“gb2312”。   
146  
147现有的XML分析器大多不支持中文编码“GB2312”或“BIG5”,因此无法读   
148取包含中文的XML文件。你可以使用支持中文编码的分析器,如MSXML,IBMJAVA4C,   
149
150
151IBMJAVA4J等进行XML分析。你也可以用内码转换工具,将编码转换为“UTF-8”或“   
152UTF-16”后进行解析,然后将解析结果转换回原来的编码。本站的软件园地中的ccnv   
153(Code Converter)就是这样的工具。当然,你也可以自己写一个内码转换程序。   
154  
155关于“UTF-8”和“UTF-16”编码的详细信息,请查看本站标准荟萃中的UTF   
156-16和UTF-8标准。   
157  
158六.XML如何与数据库连接?   
159  
160  
161XML是一种文件格式,它没有规定与数据库的连接方法,你需要用传统的方法连   
162接数据库,进行数据库查询,然后将查询结果转化为XML格式。现在有一些工具提供   
163了XML与数据库的连接过程大都遵循这样的步骤。下面是一个利用ASP直接生成XML文   
164件的例子,你可以访问http://www.xml.net.cn/Asps/test/roster1.asp查看执行效   
165果。   
166  

@ language="VBScript"

1<?xml version="1.0" encoding="gb2312"?>
2<?xml:stylesheet type="text/xsl" href="..image oster.xsl"?>
3<roster>   

set cConn = Server.CreateObject("ADODB.Connection")

call cConn.Open("DSN","USER", "PWD")
set rs = cConn.Execute("SELECT DISTINCT * FROM roster")
Do While Not rs.EOF

 1<record>
 2<name>```
 3=trim(rs("name"))
 4```</name>
 5<nativeplace>```
 6=trim(rs("NativePlace"))
 7```</nativeplace>
 8<age>```
 9=trim(rs("Age"))
10```</age>
11<telephone>```
12=trim(rs("Telephone"))
13```</telephone>
14</record>   

rs.MoveNext
Loop
rs.Close
set rs=nothing
set cConn=nothing

  1</roster>   
  2  
  3  
  4xml应用实例   
  5  
  6  
  7本文介绍3个XML的基本应用实例,旨在带领你快速步入XML编程世界。实例包括:在   
  8
  9
 10.NET中使用XML、读取XML文件,插入数据到XML文档中。   
 11在.NET中使用XML   
 12如果使用过MSXML3,那么在.NET应用程序中使用XML将是一个相当简单的过程。   
 13即时没有接触过MSXML3,也不要紧,你会发现使用.NET平台提供的相关类也是很容易   
 14的一件事情。   
 15有两种主要API可用于访问建立在XML文档中的数据,它们包括只向前的无缓冲存   
 16取以及随机存取,而且自始至终都使用到文档对象模型DOM。有关这2个API的类位于   
 17System.XML集合中。   
 18如果要快速有效地访问XML文档中的数据,就需要使用XmlTextReader类。这个类   
 19采取“拉”模式处理方式,要比简单XML API(SAX)中的“推”模式处理方式优越许   
 20多。使用XmlTextReader类之前首先要引用System.Xml集合,在C#中是使用“using”   
 21关键字来引用,在Visual Basic中则是使用“imports”关键字。引用了集合后,就   
 22可以象下面的代码所示开始例示读操作了:   
 23XmlTextReader reader = new XmlTextReader(pathToXmlDoc);   
 24int elementCount = 0;   
 25while (reader.Read()) {   
 26if (reader.NodeType == XmlNodeType.Element) {   
 27elementCount++;   
 28}   
 29}   
 30XmlTextReader类中有几个不同的构造器,上面所示的负责接收一个XML文件的路   
 31径作为字符串参数。   
 32
 33
 34虽然只向前的“拉”模式处理相当有效率,但它却是只读的,所以不能允许执行   
 35插入、删除或者更新XML文档节点的操作。当需要对XML文档施加更多的控制并需要更   
 36大的灵活性时,我们可以看一看文档对象模型DOM。DOM API的功能将XML文档中的每   
 37一个节点装载到一个树形结构中,看起来就象是一个“家谱”。内存中有了这个结构   
 38,随机存取XML文档中的不同节点就变得可行。   
 39开始创建DOM树形结构前,首先引用System.Xml集合,然后例示XmlDocument类:   
 40  
 41XmlDocument xmlDoc = new XmlDocument();   
 42xmlDoc.Load(pathToXmlDoc);   
 43XmlNode root = xmlDoc.DocumentElement;   
 44通过使用XmlDocument类中的相关方法,在树形结构中添加节点的操作可以很容   
 45易地完成。下面的例子演示了如何从一个文件中装载XML,然后在根节点root下添加   
 46一个子元素以及它的相关属性:   
 47XmlDocument xmlDoc = new XmlDocument();   
 48XmlDoc.Load(pathToXmlDoc);   
 49XmlElement root = xmlDoc.DocumentElement;   
 50XmlElement newNode = doc.CreateElement("newNode");   
 51newNode.SetAttribute("id","1");   
 52root.AppendChild(newNode);   
 53以上代码执行后,将产生下面的XML文档:   
 54<?xml version="1.0"?>
 55<root>
 56<newnode id="1"></newnode>
 57</root>   
 58当需要将包含XML的字符串装载进DOM中时,可以使用XmlDocument类的LoadXml(   
 59)方法。装载进去后,就可以按照下面的方式操作XML:   
 60string myXml = "<root><somenode>Hello</somenode></root>";   
 61XmlDocument xmlDoc = new XmlDocument();   
 62xmlDoc.LoadXml(myXml);   
 63//....manipulation or reading of the nodes can occur here   
 64除了以上几种,在System.Xml集合中还有多种其他类可用于执行不同的任务。上   
 65面的介绍仅仅是浅尝则止,大量的应用还需要更多的练习。   
 66读取XML文件   
 67下面介绍如何使用XmlTextReader类读取XML文档,并将数据显示输出。   
 68System.XML名称空间中定义了两个类-XmlReader与XmlTextReader,其中XmlTextReade   
 69r   
 70类来源于XmlReader类,而XmlTextReader类就可以用于读取XML文档,这个文档的Read   
 71函数将读取文档内容,直到节点尾部。   
 72以下是具体的实现步骤:   
 731、引用名称空间   
 74因为相关XML的类是在System.XML名称空间中定义的,所以第一件事情就是引用   
 75这个名称空间:   
 76using System.Xml;   
 772、打开XML文档   
 78
 79
 80XmlTextReader类的构造器可用于打开一个XML文件。本例程的XML文件叫做xmltest   
 81.xml,位于C:\temp目录下。打开文件c:\temp\xmltest.xml的命令如下:   
 82XmlTextReader reader = new XmlTextReader("C:\\\temp\\\xmltest.xml");   
 833、读取数据   
 84读取XML文件的数据,可以使用XmlTextReader类的Read方法:   
 85while ( reader.Read() )   
 86{   
 87Console.WriteLine(reader.Name);   
 88}   
 894、完整执行代码readxml.cs   
 90namespace WriteToXML   
 91{   
 92using System;   
 93using System.Xml;   
 94/// <summary>   
 95/// Summary description for Class1.   
 96/// </summary>   
 97public class Class1   
 98{   
 99public Class1()   
100{   
101}   
102
103
104public static int Main(string[] args)   
105{   
106try   
107{   
108XmlTextWriter writer = new XmlTextWriter("C:\\\temp\\\xmltest.xml", null   
109);   
110writer.WriteStartDocument();   
111writer.WriteComment("Commentss: XmlWriter Test Program");   
112writer.WriteProcessingInstruction("Instruction","Person Record");   
113writer.WriteStartElement("p", "person", "urn:person");   
114writer.WriteStartElement("LastName","");   
115writer.WriteString("Chand");   
116writer.WriteEndElement();   
117writer.WriteStartElement("FirstName","");   
118writer.WriteString("Chand");   
119writer.WriteEndElement();   
120writer.WriteElementInt16("age","", 25);   
121writer.WriteEndDocument();   
122}   
123catch (Exception e)   
124{   
125Console.WriteLine ("Exception: {0}", e.ToString());   
126
127
128}   
129return 0;   
130}   
131}   
132}   
133插入数据到XML文档中   
134要实现将XML数据插入到一个现存文档或者一个新文档中的目的,可以使用XmlNode   
135类和XmlDocument类。具体的实现步骤如下:   
1361、引用名称空间   
137因为相关XML的类是在System.XML名称空间中定义的,所以第一件事情就是引用   
138这个名称空间:   
139using System.Xml;   
1402、装载XML到文档中   
141我们可以使用XmlDocument的LoadXml方法将XML数据装载到一个文档中,或者是   
142装载一个现存的XML文档。下面的代码装载XML数据到文档中:   
143XmlDocument doc = new XmlDocument();   
144doc.LoadXml("<xmlfile>" +   
145" <somedata>Old Data</somedata>" +   
146"</xmlfile>");   
1473、插入XML数据   
148下面的代码将XML数据插入到文件中,然后保存为InsertedDoc.xml:   
149try   
150
151
152{   
153XmlNode currNode;   
154XmlDocument doc = new XmlDocument();   
155doc.LoadXml("<xmlfile>" +   
156" <somedata>Old Data</somedata>" +   
157"</xmlfile>");   
158XmlDocumentFragment docFrag = doc.CreateDocumentFragment();   
159docFrag.InnerXml="<inserted>" +   
160" <newdata>Inserted Data</newdata>" +   
161"</inserted>";   
162// insert the availability node into the document   
163currNode = doc.DocumentElement.FirstChild;   
164currNode.InsertAfter(docFrag, currNode.LastChild);   
165//save the output to a file   
166doc.Save("InsertedDoc.xml");   
167}   
168catch (Exception e)   
169{   
170Console.WriteLine ("Exception: {0}", e.ToString());   
171}   
172代码执行后,新文档的内容如下:   
173\- <xmlfile>   
174
175
176\- <somedata>   
177Old Data   
178\- <inserted>
179<newdata>Inserted Data</newdata>
180</inserted>
181</somedata>
182</xmlfile>(完)   
183  
184  
185xml的应用是什么?xml到底能做什么?   
186  
187首先说,xml的技术有两项的很显著的特点。   
1881,数据和现实的分离。   
1892,数据的自描述性。   
190下面我就从这两个方面,结合自己的经验和丛书中了解的知识,简单的谈一下。   
191第一:数据和现实的分离。   
192比如说你手头上有一篇的资料(我们这里先假定是文字的资料,因为如果涉及到图,   
193影像等范围就太广了,也不是我只能力所及),是xml的数据的格式,好了,如果你的   
194客户想通过互联网看看你的资料。你就可以使用一个aaa.xsl把你的xml的数据格式化   
195为HTML的格式,同时这里面有个补充一点,因为你可以控制你要显示的内容,你可以   
196过滤掉对于客户不能看到的信息。但是这里面你并没有动原来的数据。   
197如果你的老板想把资料打印出来,作为报表向上级汇报,还是用原来的数据,再写一   
198
199
200个bbb.xsl,把xml的数据输出为一个漂亮的报表的形式。ok了。   
201如果你以前的数据是txt的格式,你就必须从新的要做两种的格式,   
202一个html的,一个报表的。你的工作最多时copy,copy的   
2032,数据的自描述性。   
204比如说我的个人信息。   
205对于数据库来说,可能建立一个users的表。建立不同的字段。   
206数据取得可以是   
207rs("name")="jiangtianpeng"   
208rs("Emial")="[email protected]"   
209rs("Id")="dadapeng"   
210但是没有了rs或者对于外部来说又如何的区分id和name的区别。   
211dadapeng是id?还是name?   
212jiangtianpeng是name?还是id?   
213  
214ok   
215用xml描述一下个人信息   
216<person>
217<name>jiangtianpeng</name>
218<id>dadapeng</id>
219<natio>china   
220....   
221<email>[email protected]</email>
222</natio></person>   
223  
224是不是一目了然。   
225实际上面的问题就涉及到了不同系统之间的xml的交换。xml是不同系统之间的桥梁。   
226  
227  
228我谈一下我工作的xml经验   
229我现在的工作是一个中文,英文,俄文三种语言的网站,   
230比如我们通过com组件的得到一个用户的信息   
231可能是   
232<user id="feiddd" name_cn="王" name_en="ddddf" name_ru="这里是俄文" 。。。。等等的信息=""></user>   
233  
234在中文上就写一个显示中文的xsl,   
235在英文上就写一个显示英文信息的xsl。   
236  
237如果不用这种技术,将会很麻烦的。</br></list></list>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus