ASP.NET 2.0 XML 系列(1): XML介绍

1.1 简介

XML的一个强大之处在于它的强大可扩展性。XML没有定义自己的标签,你可以创建你自己的标签,形成你自己的词汇表。XML关注的是内容,而不是表现,你创建的标签主要用来阻止数据而不是表现数据。
(a).
<H1>ASP.NET XML 系列</H1>
<
p>Author: Jack Wang</p>

(b).
<articles>
<
title>Asp.net xml系列</title>
<
author>Jack Wang</author>
</
articles>

很明显第二种更容易为人类理解

1.2 基本术语:

格式良好
如果文档符合由XML规范定义的格式良好的规定,那么该文档就被认为是格式良好的,规定如下:
文档包含一个或多个元素
文档只有一个根元素(也就是文档元素)
元素的结束标签名称与开始标签的名称一致
在一个元素中属性只能出现一次
属性值不能包含左尖括号(<)
由开始和结束标签界定的元素必须互相正确地嵌套
有效性
有效之前,必须是格式良好的,为了达到有效,XML文档必须经过验证。可以通过DTD(Document Type Definition)或者XML模式(XML Schema Definition)来对文档 进行验证。

1.3 XML文档的组成部分

XML是一种用来描述数据并构建数据的语言,XML数据包含在文档中,这个文档可以是一个文本、一个数据流或者任何其他能够保存文本的存储介质,现实的或者虚拟的。一个正确的XML文档以如下XML申明开始,制定文档内容将要符合的XML版本
<?xml version="1.0" >
 XML还可以包含编码属性,用来定义文档的字符类型。
<?xml version="1.0" encoding="utf-8"?>
如果文档由UTF-8或者UTF-16字符组成,那么编码属性是可选的,因为XML解析器可以解析文档的前5个字符'<?xml'. XML声明其实是XML处理指令的特殊格式,其中包含了XML处理器的指令。处理指令一般在<?和?>之间。

  1. 元素

    元素名称必须符合XML规范中预先描述的一套规则,你可以在http://www.w3c.org/TR/REC-xml上阅读。规范着重强调元素名称可以由字母或者下划线开头,后跟字母、数字、句点、连字符和下划线。元素名称中不允许空格。元素是XML文档的构件,可以包含数据、其它元素或者同时包含,并且总是以开始和结束标签分界。XML没有预定义元素。 <?xml version="1.0" encoding="utf-8"?>

    <!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> < articles >
    < article >
    < title > Asp.net xml系列 </ title >
    < author > Jack Wang </ author >
    < publishdate > 2008-03-15 </ publishdate >
    </ article >
    < article >
    < title > C# xml系列 </ title >
    < author > Jack Wang </ author >
    < publishdate > 2009-03-15 </ publishdate >
    </ article >
    < article >
    < title > xml系列 </ title >
    < author > Jack Wang </ author >
    < publishdate />
    </ article >
    </ articles >


    <
    articles>
    是文档的元素,<article><articles>的子元素<title><author><publishdate><article>的子元素,<publishdate/>空元素可以这样写(既没有数据的元素)。

  2. 属性
    <title maintitle="ASP.NET">Asp.net xml系列</title> maintitle就是属性。

  3. CDATA、PCDATA和实体引用
    出现在<![CDATA[和 ]]>标签之间的数据就是CDATA,而其他的数据就是PCDATA(Parsed character Data). XML解析器会忽略CDATA标签中的内容。
    <price><![CDATA[0<bookprice<1000]]></price>

    另一种表达方法是把它们替换成实体引用

  4. 命名空间 
    <!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> < article >
    < title > xml系列 </ title >
    < author >
    < title > Mr </ title >
    < nickName > Jack </ nickName ></ author >
    < publishdate />
    < price > <![CDATA[ 0<bookprice<1000 ]]> </ price >
    </ article >

我们可以看到上面两个title表示不同的语义,但是无法区分,同样这种问题也会出现在多个文档组织在一起时。所以我们需要加上命名空间,作用就是和C#里的一样。
声明命名空间
Xmlns—指定值作为xml的命名空间,他是申明命名空间所必需的,并且可以附加在任何 XML元素上。
Prefix---指定一个命名空间的前缀,如果使用了该前缀,那么文档中任何使用该前缀(prefix:element)的任何元素被认为是位于申明的命名空间范围之内.
namespaceURI—指定命名空间唯一标识符。不必指向一个实际的WEB资源。

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> <? xml version="1.0" encoding="utf-8" ?>
< articles  xmlns ="http://cnblogsfans.cnblogs.com/Asp.net_xml/article" >
< article >
< title  maintitle ="ASP.NET"   > Asp.net xml系列 </ title >
< author > Jack Wang </ author >
< publishdate > 2008-03-15 </ publishdate >
</ article >
< article >
< title > C# xml系列 </ title >
< author > Jack Wang </ author >
< publishdate > 2009-03-15 </ publishdate >
</ article >
< article >
< title > xml系列 </ title >
< author  xmlns:mytitle ="http://cnblogsfans.cnblogs.com/Asp.net_xml/article/author" >
< mytitle:title > Mr </ mytitle:title >
< nickName > Jack </ nickName >
</ author >
< publishdate />
< price > <![CDATA[ 0<bookprice<1000 ]]> </ price >
</ article >
</ articles >

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值