欢迎光临
我们一直在努力

XML资源-.NET教程,XML应用

建站超值云服务器,限时71元/月

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年了^_^

发信人: oopoo.bbs@freecity.cn (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"> &#39;定議模板

開始

<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&apos;5&apos;">

<book width="6&quot;5&quot;">

<name>list &amp;lisongtao</name>

<author>lisongtao &lt; list@263.net&gt;</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年了^_^

发信人: oopoo.bbs@freecity.cn (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年了^_^

发信人: oopoo.bbs@freecity.cn (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")="wfxian@263.net"

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>wfxian@263.net</email>

</person>

是不是一目了然。

实际上面的问题就涉及到了不同系统之间的xml的交换。xml是不同系统之间的桥梁。

我谈一下我工作的xml经验

我现在的工作是一个中文,英文,俄文三种语言的网站,

比如我们通过com组件的得到一个用户的信息

可能是

<user id=feiddd name_cn="王" name_en="ddddf"

name_ru=这里是俄文 。。。。等等的信息 />

在中文上就写一个显示中文的xsl,

在英文上就写一个显示英文信息的xsl。

如果不用这种技术,将会很麻烦的。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » XML资源-.NET教程,XML应用
分享到: 更多 (0)

相关推荐

  • 暂无文章