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文件 <?xml version="1.0"?> 定義標記 <book> <title>XML</title> <author>lisongtao</author> </book> 主要是注意語法的套用 用CSS來顯示XML: 1.XML -------------------------------------------- <?xml version="1.0"?> <?xml-stylesheet type="text/css" href="1.css"?> ''連接CSS樣式表 <lisongtao> Hello the world! </lisongtao> --------------------------------------------- 1.CSS
---------------------------------------- lisongtao {display: block; font-size: 48pt; font-weight: bold;} 用XLS來顯示XML: 1.XML -------------------------------------------- <?xml version="1.0"?> <?xml-stylesheet type="text/css" href="2.xls"?> ''''連接XLS <lisongtao> Hello the world! </lisongtao> --------------------------------------------- 2.xsL ---------------------------------------- <?xml version="1.0" encoding="gb2312"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> ''定議模板 開始 <xsl:template match="/"> ''根標記 <html> <head> <title>hello the world</title> </head>
<body bgcolor="#CCCCFF"> <h1 align="center"><xsl:value-of select="lisongtao"/></h1>''子節點 </body> </html> </xsl:template> </xsl:stylesheet> XML 的注釋和JS一樣. <?xml version="1.0" encoding="gb2312"?> <!-- 这是一些有关书的信息 --> <books> <book> <name>xml应用</name> <author>list1</author> <price>55.00</price> </book> </books> 帶屬性的XML節點 <?xml version="1.0"?>
<books title="list"> <book> <name>xml and asp</name> <price>45.00</price> <publisher>tsinghua </publisher> </book> </books> 特殊標記的用法: <?xml version="1.0"?> <books height="6'5'"> <book width="6"5""> <name>list &lisongtao</name> <author>lisongtao < [email protected]></author> </book> </books> XML中的中文標示: <?xml version="1.0" encoding="gb2312"?> <好人 > <name>小鞋子</name>
</好人> DTD的使用一例 1.DTD ===================== <?xml version="1.0"?> <!ELEMENT book (price,name)> <!ELEMENT name (#PCDATA)> <!ELEMENT price (#PCDATA)> ===================== DTD.XML ================== <?xml version="1.0"?> <!DOCTYPE book SYSTEM "1.dtd"> <book> <name>lisongtao</name> <price>11.2</price> </book> 把DTD写在XML文件里面 <?xml version="1.0"?> <!DOCTYPE book [
<!ELEMENT book (price,name)> <!ELEMENT name (#PCDATA)> <!ELEMENT price (#PCDATA)> ]> <book> <price>11.2</price> <name>lisongtao</name> </book> 节点的多属性 <?xml version="1.0" encoding="gb2312"?> <books> <book name=" xml应用" author="list1" price="55.00"> </book> </books> 可缺省的结束标记的方法 <?xml version="1.0" encoding="gb2312"?> <books> <book name=" xml应用" author="list1" price="55.00"/>注意这里多了个"/" </books>
CDATA文件标记的用法一例 <?xml version="1.0" encoding="gb2312"?> <books> <![CDATA[ <book> <name>xml应用</name> <author>list1</author> <price>55.00</price> </book> ]]> <book> <name>xml应用</name> <author>list1</author> <price>55.00</price> </book> </books> 经过以上的学习.总算写出一个标准的XML文件 <?xml version="1.0" encoding="gb2312"?> <!--这是一个学生选课系统的所有数据-->
<choose_system> <students> <student id="984610" lesson_id="11"> <name>栗松涛</name> <age>25</age> <sex>男</sex> <department>自动化</department> </student> <student id="984611" lesson_id="12"> <name>李未</name> <age>26</age> <sex>男</sex> <department>自动化</department> </student> <student id="984612" lesson_id="11"> <name>张红</name> <age>23</age> <sex>男</sex> <department>自动化</department> </student> <student id="984613" lesson_id="12"> <name>李亮</name>
<age>25</age> <sex>男</sex> <department>自动化</department> </student> </students> <lessons> <lesson id="11"> <name>控制原理</name> <num>12</num> <les_start>99.2</les_start> <les_end>99.7</les_end> <end_method>考试</end_method> </lesson> <lesson id="12"> <name>网络原理</name> <num>11</num> <les_start>99.3</les_start> <les_end>99.6</les_end> <end_method>通过</end_method> </lesson> </lessons>
<teachers> <teacher id="1122" lesson_id="11"> <name>江华</name> <age>33</age> <tea_age>3</tea_age> <rank>教授</rank> <publish>控制原理</publish> <sex>男</sex> </teacher> <teacher id="1123" lesson_id="12"> <name>刘佳</name> <age>40</age> <tea_age>7</tea_age> <rank>副教授</rank> <publish>网络原理</publish> <sex>男</sex> </teacher> </teachers> </choose_system> --
<name>江华</name> <age>33</age> <tea_age>3</tea_age> <rank>教授</rank> <publish>控制原理</publish> <sex>男</sex> </teacher> <teacher id="1123" lesson_id="12"> <name>刘佳</name> <age>40</age> <tea_age>7</tea_age> <rank>副教授</rank> <publish>网络原理</publish> <sex>男</sex> </teacher> </teachers> </choose_system> -- 我家的狗跟了我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文件可以非常简单。它可以不需要文件 类型说明,而直接就是你自己设计的内嵌式标识。如下面一段代码: <?xml version="1.0" standalone="yes"?> <conversation> <greeting>Hello, world!</greeting> <response>Stop the planet, I want to get off!</response> </conversation> 当然它也可以更加复杂些。如DTD声明,内嵌子集,等等: <?xml version="1.0" standalone="no" encoding="UTF-8"?> <!DOCTYPE titlepage SYSTEM "http://www.frisket.org/dtds/typo.dtd" [<!ENTITY % active.links "INCLUDE">]> <titlepage> <white-space type="vertical" amount="36"/> <title font="Baskerville" size="24/30" alignment="centered">Hello, world !</title> <white-space type="vertical" amount="12"/> <!-- In some copies the following decoration is hand-colored, presumably by the author --> <image location="http://www.foo.bar/fleuron.eps" type="URL" alignment
="centered"/> <white-space type="vertical" amount="24"/> <author font="Baskerville" size="18/22" style="italic">Vitam capias</ author> </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书写的文件。它包含了对一种文件的正式定义。它定义了文件 中的元素能用什么名字,能放在什么位置,应该怎样组合。在这里举一个简单的例子 。比如说你想要你的文件可以描述一组<List>,其中每个<List>由可以包含若干个< Item>。那么你的DTD中应该有以下语句:<!ELEMENT List (Item)+> <!ELEMENT Item (#PCDATA)> 这样一个框架定义了一个表(list),它可以包含若干个项(items)。每一个项 只能包括文本的内容。当处理器处理XML文件时将自动检查DTD,以此确定文件中元素 从哪而来,以及它们之间是什么关系。上面的框架允许你生成下面的一个表: <List><Item>Chocolate</Item><Item>Music</Item><Item>Surfing</Item></List
> 而这样一个表在屏幕上是怎样一个表象,取决于你的样式表(Stylesheet)。在HTML 中你要在文件中指定应是怎样的形式。使用DTD表明你能够确定一类文章的结构和格 式。 要想找一个DTD看看吗?实际上,各个领域里的SGML DTD由成千上万。你可以参 看SGML 的网页。 C.6 我总是听说DTD的替代者Schema,它到底是什么? 有许多XML的开发者并不满意XML的规范。原因有两点: 1.既然XML在说明结构信息是有很多好处,那么用来描述文件类型的结构的文件 (这就是Schema)为什么不是也用XML书写的呢?这样做的好处不光是统一,而且便 于用正规的文件工具编辑管理Schema。 2.过去的DTD对数据的限制不够。比如说你想要一个元素只取负值,或是必须有 一个值,DTD很难做到。 C.7 我能用XML作算术运算吗? 只要你的文件类型提供算术类型,知识可以的。W3C已经有了一个MathML(Mathematical Markup Language数学标识语言)的计划。清参看W3C最新(1999年7月)发布的MathML 规范。 C.8 在XML中,我能使用Java, ActiveX吗? 这取决于浏览器制造者运用的工具. XML是用来描述信息的; 描述性语言和用来 描述内嵌函数功能的语言的目的是使得信息能在客户端被操作.. XML本身提供了一种 定义标识的方法,而这些标识是描述性语言所必需的. XML是一个中立的标准.他不支 持或是反对任何一种描述性语言.所以说它是一个开放的领域. 描述性语言是在”Extensibl
e Style Language”XSL (可扩展类型语言).计划中提出的. C.9 我能用Java编写或是管理XML文件吗? 可以.我们可以用任何一种编程语言从任何一种XML格式的信息中提取数据. D.高级开发者和应用者(包括网络管理员和服务器操作人员) D.1哪儿可以找到XML的规范? 请参见: http://www.w3.org/TR/REC-xml D.2 "DTDless" ,"valid",和"well-formed"这些术语是什么意思? 在完整的SGML中,我们用DTD描述特定文件中的各种标识.但DTD的生成是一件极其 复杂的工作.所以XML被设计成可以缺省DTD. DTDless表示您可以创造一个标识而不需 正式的定义.当然这也要付出代价.您不能在其他的文件中对同样的形式采用自动的处 理. DTDless的文件是以一种非正式的方式定义它的标识的.标识是在哪儿出现的就在 哪儿定义它.但当一个比方说是浏览器的XML应用程序打开了一个DTDless的文件,它必 须要有办法来理解文件的结构.但它又没有DTD,所以规则上有了一些改变. 举一个例 子: HTML中的<img> 是被定义为”EMPTY”(空)的.它并不需要”end-tag”(结尾标签 ). DTD 的XML应用程序在打开一个缺省DTD. 的文件,读到<img>时不知道是否需要一 个”end-tag”.所以”well-formed”(结构良好)的定义也变得重要了. ”well-formed ”可以使得一般元素和”EMPTY”元素区分开来. D.2.1 ”well-formed”(结构良好的)文件 1.如果一个文件没有DTD,它必须在开头处有一个"Standalone Document Declaration "(独立文件声明):
<?xml version="1.0" standalone="no" encoding="UTF-8"?> <foo> . <bar> ...<blort/>...</bar> </foo> 2.除了空素以外, 标记必须前后匹配. 3.所有的”attribute”值都要用引号括起来. 4. ”EMPTY”元素的tag要么用”/>”结尾,要么要补成”non-EMPTY”(非空)的 元素. 比如说: <BR>要么写为<BR/> 或是<BR></BR> 5.文件中必须不能出现”markup-start “(标识开始符), 比如”<”或是“&” . 6.元素必须遵守SGML的规则,正确嵌套. D.2.2”Valid “(合法的)XML 合法的XML是指有DTD的文件.它必须是”well-formed”的. D.3 在DTD中,我什么时候用属性, 什么时候用元素? 这并没有唯一的答案.着取决于您设计文件的风格.以下是两个极端的例子,它们 的功能是一样的: 1. <l n="184"><sp>Portia</sp><text>The quality of mercy is not strain ’d,</text></l> 2. <line speaker="Portia" text="The quality of mercy is not strain’d ">184</line> D.4 SGML 和XML之间还有什么区别? 主要的区别在于DTD的内容.为了简化语法和编写软件的过程, XML中对SGML做了
很大缩减. D.5 现在有哪些XML的软件可以使用? 由于更新速度太快,我们建议您参看: http://www.oasis-open.org/cover/xml. html. D.6 要使用XML,我是否要改变服务器的软件? 要的,但改动不大.您只要编辑您的mime-types文件,加上以下一句: application/xml xml XML 经典问答 一.HTML已经这样流行了,为什么还要发展XML? 简单地讲,HTML不能完成,我们希望XML所要完成的任务。原因很简单,XML所要 完成的任务,必须由元置标语言来完成,而HTML只是一个实例置标语言。 在XML发布 之前,国际互联网的发展受到HTML如下几个问题的束缚: 1) HTML无法描述数据内容,而这一点恰恰是数据检索、电子商务所必须的。 2) HTML对数据表现的描述能力是十分不够的,如HTML还不能描述矢量图形、 科学符号等对象,目前只能通过图象来表现这些对象。 3) HTML实例置标语言的地位,完全不能适应对新标记需求的发展需要。 XML的出现,使上述问题都得到很好的解决。
试想在互联网世界,如果大家都讲方言,互相交换信息时都要进行翻译,那将是 一个多么难以沟通和交流的世界。在互联网世界,XML之所以重要,恰恰是由于它扮 演了"国际语言"角色的缘故。此外,XML更为互联网世界提供了定义各行各业的"专业 术语"的工具。 二.如何在浏览器中阅读XML? 阅读XML文档的工具一般称为XML解析器, 也称为XML处理器。 XML处理器将数据 传送到应用软件, 以便处理, 出版, 查询, 或显示。XML不给应用软件提供 应用程序 接口 (API), 它只是把数据传给应用软件. XML处理器不解析非构造良好的数据。 Netscape 和 Microsoft 都已经将XML解析器包含在其浏览器中。 XML开发者团体提供免费的 XML阅读器和解析器, 以便在应用软件或XML制作软件中进行应用。 三.为什么要使用XML而不是HTML? 比较重要的原因有以下六条: 1)作者和供应商能使用XML设计自己的文档类型,不必被HTML所约束。 2)由于XML的超文本链接能力比HTML强得多,XML提供的信息内容比 HTML更丰富,也更易于使用。 3)XML能提供更多更好的机制方便浏览器的信息表现和优化性能。 4)XML舍弃了SGML的复杂性,因此编写处理XML的应用程序会很容易。
5)信息易于存储,可重复使用。 6)XML文件在SGML环境中也可使用,不一定要局限于在WEB中使用。 四.可以用Java创建和管理XML文件吗? 是的,任何程序设计语言都能被用来从XML形式的源文档中输出数据。已经出现 了许多的前端和后台工具使得程序设计和数据管理更加方便。下面两个网址有更加详 细的说明: http://www.markwatson.com/XMLdb_0_1.htm http://developerlife.com 五.为什么XML文件的分析结果出现乱码? 这是由编码问题引起的。XML标准规定,XML分析器必须支持“UTF-8”和“UTF- 16”编码,而且必须能够自动区分这两种编码的文件,对于其他编码(包括常用的中 文编码“GB2312”或“BIG5”)并不要求支持。如果XML文件中包含编码声明,分析 器则按照声明的编码进行处理,否则就按照识别结果进行处理(识别的结果总是“UTF -8”和“UTF-16”中的一种)。因此,如果XML文件的编码在这两种之外,你必须在 XML文件前加上编码声明,如:<?xml version="1.0" encoding="gb2312"?>就表示XML 文件的编码是“gb2312”。 现有的XML分析器大多不支持中文编码“GB2312”或“BIG5”,因此无法读 取包含中文的XML文件。你可以使用支持中文编码的分析器,如MSXML,IBMJAVA4C,
IBMJAVA4J等进行XML分析。你也可以用内码转换工具,将编码转换为“UTF-8”或“ UTF-16”后进行解析,然后将解析结果转换回原来的编码。本站的软件园地中的ccnv (Code Converter)就是这样的工具。当然,你也可以自己写一个内码转换程序。 关于“UTF-8”和“UTF-16”编码的详细信息,请查看本站标准荟萃中的UTF -16和UTF-8标准。 六.XML如何与数据库连接? XML是一种文件格式,它没有规定与数据库的连接方法,你需要用传统的方法连 接数据库,进行数据库查询,然后将查询结果转化为XML格式。现在有一些工具提供 了XML与数据库的连接过程大都遵循这样的步骤。下面是一个利用ASP直接生成XML文 件的例子,你可以访问http://www.xml.net.cn/Asps/test/roster1.asp查看执行效 果。 <%@ language="VBScript" %> <?xml version="1.0" encoding="gb2312"?> <?xml:stylesheet type="text/xsl" href="..image oster.xsl"?> <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 %> <Record> <Name><%=trim(rs("name"))%></Name> <NativePlace><%=trim(rs("NativePlace"))%></NativePlace> <Age><%=trim(rs("Age"))%></Age> <Telephone><%=trim(rs("Telephone"))%></Telephone> </Record> <% rs.MoveNext Loop rs.Close set rs=nothing set cConn=nothing %> </roster> xml应用实例 本文介绍3个XML的基本应用实例,旨在带领你快速步入XML编程世界。实例包括:在
.NET中使用XML、读取XML文件,插入数据到XML文档中。 在.NET中使用XML 如果使用过MSXML3,那么在.NET应用程序中使用XML将是一个相当简单的过程。 即时没有接触过MSXML3,也不要紧,你会发现使用.NET平台提供的相关类也是很容易 的一件事情。 有两种主要API可用于访问建立在XML文档中的数据,它们包括只向前的无缓冲存 取以及随机存取,而且自始至终都使用到文档对象模型DOM。有关这2个API的类位于 System.XML集合中。 如果要快速有效地访问XML文档中的数据,就需要使用XmlTextReader类。这个类 采取“拉”模式处理方式,要比简单XML API(SAX)中的“推”模式处理方式优越许 多。使用XmlTextReader类之前首先要引用System.Xml集合,在C#中是使用“using” 关键字来引用,在Visual Basic中则是使用“imports”关键字。引用了集合后,就 可以象下面的代码所示开始例示读操作了: XmlTextReader reader = new XmlTextReader(pathToXmlDoc); int elementCount = 0; while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { elementCount++; } } XmlTextReader类中有几个不同的构造器,上面所示的负责接收一个XML文件的路 径作为字符串参数。
虽然只向前的“拉”模式处理相当有效率,但它却是只读的,所以不能允许执行 插入、删除或者更新XML文档节点的操作。当需要对XML文档施加更多的控制并需要更 大的灵活性时,我们可以看一看文档对象模型DOM。DOM API的功能将XML文档中的每 一个节点装载到一个树形结构中,看起来就象是一个“家谱”。内存中有了这个结构 ,随机存取XML文档中的不同节点就变得可行。 开始创建DOM树形结构前,首先引用System.Xml集合,然后例示XmlDocument类: XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(pathToXmlDoc); XmlNode root = xmlDoc.DocumentElement; 通过使用XmlDocument类中的相关方法,在树形结构中添加节点的操作可以很容 易地完成。下面的例子演示了如何从一个文件中装载XML,然后在根节点root下添加 一个子元素以及它的相关属性: XmlDocument xmlDoc = new XmlDocument(); XmlDoc.Load(pathToXmlDoc); XmlElement root = xmlDoc.DocumentElement; XmlElement newNode = doc.CreateElement("newNode"); newNode.SetAttribute("id","1"); root.AppendChild(newNode); 以上代码执行后,将产生下面的XML文档: <?xml version="1.0"?> <root>
<newNode id="1"/> </root> 当需要将包含XML的字符串装载进DOM中时,可以使用XmlDocument类的LoadXml( )方法。装载进去后,就可以按照下面的方式操作XML: string myXml = "<root><someNode>Hello</someNode></root>"; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(myXml); //....manipulation or reading of the nodes can occur here 除了以上几种,在System.Xml集合中还有多种其他类可用于执行不同的任务。上 面的介绍仅仅是浅尝则止,大量的应用还需要更多的练习。 读取XML文件 下面介绍如何使用XmlTextReader类读取XML文档,并将数据显示输出。 System.XML名称空间中定义了两个类-XmlReader与XmlTextReader,其中XmlTextReade r 类来源于XmlReader类,而XmlTextReader类就可以用于读取XML文档,这个文档的Read 函数将读取文档内容,直到节点尾部。 以下是具体的实现步骤: 1、引用名称空间 因为相关XML的类是在System.XML名称空间中定义的,所以第一件事情就是引用 这个名称空间: using System.Xml; 2、打开XML文档
XmlTextReader类的构造器可用于打开一个XML文件。本例程的XML文件叫做xmltest .xml,位于C:\temp目录下。打开文件c:\temp\xmltest.xml的命令如下: XmlTextReader reader = new XmlTextReader("C:\\temp\\xmltest.xml"); 3、读取数据 读取XML文件的数据,可以使用XmlTextReader类的Read方法: while ( reader.Read() ) { Console.WriteLine(reader.Name); } 4、完整执行代码readxml.cs namespace WriteToXML { using System; using System.Xml; /// <summary> /// Summary description for Class1. /// </summary> public class Class1 { public Class1() { }
public static int Main(string[] args) { try { XmlTextWriter writer = new XmlTextWriter("C:\\temp\\xmltest.xml", null ); writer.WriteStartDocument(); writer.WriteComment("Commentss: XmlWriter Test Program"); writer.WriteProcessingInstruction("Instruction","Person Record"); writer.WriteStartElement("p", "person", "urn:person"); writer.WriteStartElement("LastName",""); writer.WriteString("Chand"); writer.WriteEndElement(); writer.WriteStartElement("FirstName",""); writer.WriteString("Chand"); writer.WriteEndElement(); writer.WriteElementInt16("age","", 25); writer.WriteEndDocument(); } catch (Exception e) { Console.WriteLine ("Exception: {0}", e.ToString());
} return 0; } } } 插入数据到XML文档中 要实现将XML数据插入到一个现存文档或者一个新文档中的目的,可以使用XmlNode 类和XmlDocument类。具体的实现步骤如下: 1、引用名称空间 因为相关XML的类是在System.XML名称空间中定义的,所以第一件事情就是引用 这个名称空间: using System.Xml; 2、装载XML到文档中 我们可以使用XmlDocument的LoadXml方法将XML数据装载到一个文档中,或者是 装载一个现存的XML文档。下面的代码装载XML数据到文档中: XmlDocument doc = new XmlDocument(); doc.LoadXml("<XMLFile>" + " <SomeData>Old Data</SomeData>" + "</XMLFile>"); 3、插入XML数据 下面的代码将XML数据插入到文件中,然后保存为InsertedDoc.xml: try
{ XmlNode currNode; XmlDocument doc = new XmlDocument(); doc.LoadXml("<XMLFile>" + " <SomeData>Old Data</SomeData>" + "</XMLFile>"); XmlDocumentFragment docFrag = doc.CreateDocumentFragment(); docFrag.InnerXml="<Inserted>" + " <NewData>Inserted Data</NewData>" + "</Inserted>"; // insert the availability node into the document currNode = doc.DocumentElement.FirstChild; currNode.InsertAfter(docFrag, currNode.LastChild); //save the output to a file doc.Save("InsertedDoc.xml"); } catch (Exception e) { Console.WriteLine ("Exception: {0}", e.ToString()); } 代码执行后,新文档的内容如下: - <XMLFile>
- <SomeData> Old Data - <Inserted> <NewData>Inserted Data</NewData> </Inserted> </SomeData> </XMLFile>(完) xml的应用是什么?xml到底能做什么? 首先说,xml的技术有两项的很显著的特点。 1,数据和现实的分离。 2,数据的自描述性。 下面我就从这两个方面,结合自己的经验和丛书中了解的知识,简单的谈一下。 第一:数据和现实的分离。 比如说你手头上有一篇的资料(我们这里先假定是文字的资料,因为如果涉及到图, 影像等范围就太广了,也不是我只能力所及),是xml的数据的格式,好了,如果你的 客户想通过互联网看看你的资料。你就可以使用一个aaa.xsl把你的xml的数据格式化 为HTML的格式,同时这里面有个补充一点,因为你可以控制你要显示的内容,你可以 过滤掉对于客户不能看到的信息。但是这里面你并没有动原来的数据。 如果你的老板想把资料打印出来,作为报表向上级汇报,还是用原来的数据,再写一
个bbb.xsl,把xml的数据输出为一个漂亮的报表的形式。ok了。 如果你以前的数据是txt的格式,你就必须从新的要做两种的格式, 一个html的,一个报表的。你的工作最多时copy,copy的 2,数据的自描述性。 比如说我的个人信息。 对于数据库来说,可能建立一个users的表。建立不同的字段。 数据取得可以是 rs("name")="jiangtianpeng" rs("Emial")="[email protected]" rs("Id")="dadapeng" 但是没有了rs或者对于外部来说又如何的区分id和name的区别。 dadapeng是id?还是name? jiangtianpeng是name?还是id? ok 用xml描述一下个人信息 <person> <name>jiangtianpeng</name> <id>dadapeng</id> <natio>china</nation> .... <email>[email protected]</email>
</person> 是不是一目了然。 实际上面的问题就涉及到了不同系统之间的xml的交换。xml是不同系统之间的桥梁。 我谈一下我工作的xml经验 我现在的工作是一个中文,英文,俄文三种语言的网站, 比如我们通过com组件的得到一个用户的信息 可能是 <user id='feiddd' name_CN="王" name_EN="ddddf" name_RU='这里是俄文' 。。。。等等的信息 /> 在中文上就写一个显示中文的xsl, 在英文上就写一个显示英文信息的xsl。 如果不用这种技术,将会很麻烦的。

|