1.什么是XML文档,用什么可以编写
所谓的xml,就是eXtensible Markup Language, 翻译成中文就是“可扩展标识语言“,在国内很多人理解xml为html的简单扩展,这实际上是一种误解。
尽管xml同html关系非常密切。 XML与SGML、HTML的关系。
SGML、HTML是XML的先驱。SGML是指“通用标识语言标准”(Standard Generalized Markup Language), 它是国际上定义电子文件结构和内容描述的标准,是一种非常复杂的文档的结构,主要用于大量高度结构化数据的防卫区和其他各种工业领域,利于分类和索引。
同XML相比,定义的功能很强大,缺点是它不适用于Web数据描述,而且SGML软件价格非常价格昂贵。 HTML相信大家都比较熟悉,即“HyperText Markup Language” (超文本标识语言),它的优点是比较适合web 页面的开发。
但它有一个缺点是标记相对少,只有固定的标记集如.等。缺少sgml 的柔性和适应性。
不能支持特定领域的标记语言,如对数学、化学、音乐等领域的表示支持较少。举个例子来说,开发者很难在web pape 上表示数学公式、化学分子式和乐谱。
Xml 结合了sgml 和html的优点并消除其缺点。Xml 仍然被认为是一种sgml语言。
比sgml要简单,但能实现sgml的大部分的功能。1996年的夏天,Sun Microssystem的John Bosak开始开发W3C SGML工作组(现在称为xml工作组)。
他们的目标是创建一种sgml,使其在Web中,既能利用Sgml的长处,又保留html的简单性。现在目标基本达到。
二、Xml 的发展。 在专业领域中,出现了Web标记语言的许多项目,著名的有CML—化学标记语言,由Peter Murray_Rust 开发,同时开发了第一个通用xml 浏览器Jumbo . 在数学方面,包括IBM公司再内都在致力开发MathML 1997年四月,出版了xll的第一个版本。
当xll完整实现时,将比html 和当前浏览器所达到的链接水平更复杂,更强大。1997年8月,Microsoft公司和Inso公司引入xsl.由于xml是纯结构和语义的,需要描述单个元素格式方法。
可以使用html的CSS;另一种方案是xsl. 1998年1月,microsoft 公司出版发行了msxsl程序。可以利用xsl表和xml文档创建能被IE4 识别的html页面。
1998年2月,W3C发布了xml1.0的正式版本。最近一年多来,由于网络应用的飞速发展,xml的发展非常迅猛。
出现了DOM(Document Object Model),XSLT(XSL Transformation)等新名词,xml的应用软件也有了飞速的发展,Microsoft、IBM、Breeze、Stilo等公司纷纷推出了自己的或解析器,或开发平台。在MicrosoftIBM、HP等大公司的推动下,目前有两个著名的xml的研究组织,分别是biztalk.com和oasis.org,由他们向W3C提出标准的建议。
其中biztalk是有Microsoft牵头组织的,有趣的是Microsoft公司同时参加了oaisis,不过不同于IBM、HP等著名大公司,他的年费只交10万美元,用Microsoft发言人的话就是“一切视oasis的发展而定!“,言下之意就是如果oasis制定的标准抵触Microsoft的应用,一场标准大战不可避免。 什么是XML 首先XML是一种元标记语言,所谓“元标记”就是开发者可以根据自己的需要定义自己的标记,比如开发者可以定义如下标记
HTML是一种预定义标记语言,它只认识诸如,等已经定义的标记,对于用户自己定义的标记是不认识的。 第二xml是一种语义/结构化语言。
它描述了文档的结构和语义。举个例子,在和html中,要描述一本书,可以如下表示: book name author_name publisher_name ;;;; isbn_number 在xml中,同样的数据表示为
XML是一种通用的数据格式从低级的角度看,xml是一种简单的数据格式,是纯100%的ASCII文本,而ASCII的抗破坏能力是很强的。不象压缩数据和java对象,只要破坏一个数据文件数据就不可阅读。
从高级的角度看,是一种自描述语言。 XML可利用于数据交换 主要是因为XML表示的信息独立于平台的,这里的平台即可以理解为不同的应用程序也可以理解为不同的操作系统;它描述了一种规范,利用它Microsoft的word文档可以和Adobe 的Acrobat交换信息,可以和数据库交换信息。
XML表示的结构化数据。 对于大型复杂的文档,xml 是一种理想语言,不仅允许指定文档中的词汇,还允许指定元素之间的关系。
比如可以规定一个author元素必须有一个name子元素。可以规定企业的业务必须有包括什么子业务。
XML文档。 XML文档有DTD和XML文本组成,所谓DTD(Document Type Definition ),简单的说就是一组标记符的语法规则.,表明XML文本是怎么样组织的,比如DTD可以表示一个
当然一个简单的XML文本可以没有DTD。下面是一个简单的xml文本。
<? Xml version=”1.0” standalone=”yes”>
2.XML格式是什么格式
XML(eXtensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。
Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。
这是一个看上去有点琐细的优点,但正是这点使XML与众不同。 XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。
为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。
因为XML是W3C制定的,XML的标准化工作由W3C的XML工作组负责,该小组成员由来自各个地方和行业的专家组成,他们通过email交流对XML标准的意见,并提出自己的看法 (/dtd/dtd_intro.asp
至于保存的话,用文本编辑器就可以,扩展名为xml
7.什么是格式良好的XML文档
格式良好的XML是遵循所有“XML文档规则”的XML文档,如下所列。这些规则规定了标记如何置于内容周围,如何按层次嵌套元素,如何为属性加标点以及怎样的元素名称是可接受的。
XML文档规则
创建XML文档时,必须遵循一些基本的指导原则,这样创建出的文档才是“格式良好的”。这表示XML元素编写恰当,遵循XML规则。具体规则如下:
XML文档必须有一个根标记,即一个单独的元素,其起始标记和结束标记位于元素剩余部分和文档内容周围。
对于每个元素,XML标记必须有相匹配的起始标记和结束标记。XML区分大小写,例如,1994是有效的,但1994则是无效的。
元素名称可以包括字母、数字和下划线,但不能以数字开头,不能包含空格。
空元素——没有内容的元素——只含有一个以斜线结尾的标记。例如,。
属性值必须用引号引起。可以使用单引号或双引号,但是建议前后使用一致。在前面的规则示例中,file是属性名称,branding.png是属性值。每个属性都有一个名值对。
实体字符和特殊字符必须谨慎使用。例如,XML文档内容中的特殊字符,如大于号(>;),在标记中显示为一个代码或实体。大于号在XML代码中显示为>,XML分析器可以识别它并显示为恰当的字符。
如果遵循了上述规则,XML文档将是格式良好的,大多数工具和浏览器都能对其完全解析。
格式良好的XML是XML能够使用的最低要求。高质量的XML,即有效的XML,将在本书稍后作介绍。
8.C#怎么写XML文档
关于C#操作xml在mdsn中有个例子,如下:(以后多查mdsn吧,会有帮助)已知有一个XML文件(bookstore.xml)如下: <?xml version="1.0" encoding="gb2312"?>
XmlNodeList nodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取bookstore节点的所有子节点 foreach(XmlNode xn in nodeList)//遍历所有子节点 { XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型 if(xe.GetAttribute("genre")=="李赞红")//如果genre属性值为“李赞红” { xe.SetAttribute("genre","update李赞红");//则修改该属性为“update李赞红” XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点 foreach(XmlNode xn1 in nls)//遍历 { XmlElement xe2=(XmlElement)xn1;//转换类型 if(xe2.Name=="author")//如果找到 { xe2.InnerText="亚胜";//则修改 break;//找到退出来就可以了 } } break; } } xmlDoc.Save("bookstore.xml");//保存。 //================================================== 最后结果为: <?xml version="1.0" encoding="gb2312"?>
XmlNodeList xnl=xmlDoc.SelectSingleNode("bookstore").ChildNodes; foreach(XmlNode xn in xnl) { XmlElement xe=(XmlElement)xn; if(xe.GetAttribute("genre")=="fantasy") { xe.RemoveAttribute("genre");//删除genre属性 } else if(xe.GetAttribute("genre")=="update李赞红") { xe.RemoveAll();//删除该节点的全部内容 } } xmlDoc.Save("bookstore.xml"); //===========================================最后结果为: <?xml version="1.0" encoding="gb2312"?>
9.xml 有几种写法,如何解析
XML和HTML都是标签化的代码,其实也都是网页的一种写法
但是浏览器决定了显示什么,也就是浏览器直接解析HTML的基本标签,配合CSS,进行显示
对于XML,XSL替代了CSS的作用,其实结构性个人感觉更灵活(XML也可以用IE直接打开,所以其实也是解析了的,只是解析的模式不同)
补充:
目前来说,XML从一种网页应用,走向了一种格式化信息的应用(你可以理解为携带型信息源,一种有规范格式的信息存储文件),一般用在3个方面比较多
1、固定信息源,供其他程序读取
2、少量型的交换信息源,例如,后台操作XML,前台读取信息源(大量的话都用数据库了)
3、配置文件
不管怎么样,我们需要使用XML里的这些信息,所以我们需要解析它,因为它的那些格式标签不是我们所需要的,我们需要的标签里的那些内容,从标签来判断这些内容是什么类型的内容,该放什么地方,这个过程就是解析