XML与SQL SERVER2005 (一)

------------------------------------------------------------------------
-- Author : HappyFlyStone
-- Date   : 2009-07-30
-- Version: Microsoft SQL Server 2005 - 9.00.2047.00 (Intel X86)
--       Apr 14 2006 01:12:25
--       Copyright (c) 1988-2005 Microsoft Corporation
--       Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
--   

-- 本文探讨 SQL Server 2005 中内置的 XML 支持.

--  第一篇旨在对XML进行一个介绍。
------------------------------------------------------------------------

 

XML,或称为可扩展标记语言(Extensible Markup Language),是一种您可以用来创建自己的标记的标记语言。它由万维网协会(W3C)创建,用来克服 HTML(即超文本标记语言(Hypertext Markup Language),它是所有网页的基础)的局限。和 HTML 一样,XML 基于 SGML 标准通用标记语言(Standard Generalized Markup Language)。尽管 SGML 已在出版业使用了数十年,但其理解方面的复杂性使许多本打算使用它的人望而却步(SGML 也代表“听起来很棒,但或许以后会用(Sounds great, maybe later)”)。

 

简单的来区别一下HTML XML

l         HTML 被设计用来显示数据。

l         XML 被设计用来传输和存储数据。

什么是 XML?

  • XML 指可扩展标记语言(EXtensible Markup Language
  • XML 是一种标记语言,很类似 HTML
  • XML 的设计宗旨是传输数据,而非显示数据
  • XML 标签没有被预定义。您需要自行定义标签
  • XML 被设计为具有自我描述性
  • XML W3C 的推荐标准

应该说XML仅是类似于HTML ,因为设计的目的不一样,那么它也不是对HTML的取代。对于XML我们关心的是数据。因为它是结构化、存储及传输数据的,所以本身没有什么行为的。如果说XML 是为 Web 设计的,那么现XML能耐不亚于当时的基石HTML.

 

XML的描述术语

标记、元素、属性

 

l         标记 是以<></>包括起来的文本,分为开始标记(<>)、结束标记(</>)

l         元素 是位于开始和结束标记之间的文本。又分为根元素和子元素,一般最外面的标记标记的方便,子元素就是除了根元素外的所有元素了。

l         属性 是在开始标记中标记的名称 值文本。

 

搞个例子来说明一下撤。

<address>
    <name> flystone    </name>
    <street> 1401 Main Street  </street>
    <city state="NC">Anytown</city>
    <postal-code> 210000  </postal-code>
</address>

所有<> </> 包括括号内的文本就是标识了。

<adderss>         

-> 根元素定义开始,每一个XML必须包含根元素。

 
<name> flystone  </name>
<street>    1401 Main Street  </street>
<city state="NC">Anytown</city>

<postal-code>    210000  </postal-code>

->全是子元素

state="NC"

-> 这就是属性啦

</address>

-> 根元素定义结束

最后说一下XML的声明:

<?xml version="1.0" encoding="ISO-8859-1"?>

它定义了XML文档的版本及使用的编码。

 

注明:关于XML的书写格式、如何正确嵌套、属性一、实体及命名规则和标签的语法可到相应的网站自己看看。

 

XML的验证

 

使用DTD(文档类型定义)。那么遵守DTD的“形式良好”XML文档才是合法。简单的看一个定义:

<!DOCTYPE address [

  <!ELEMENT address (name, street, city, postal-code)>

  <!ELEMENT name (#PCDATA)>

  <!ELEMENT street (#PCDATA)>

  <!ELEMENT city (#PCDATA)>

  <!ELEMENT postal-code (#PCDATA)>

 

  <!ATTLIST city state (NC|NM) "NC" >

]>

 

接着可以在XML中声明是对外部 DTD 文件的引用:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE address SYSTEM "ex.dtd">

<address>
    <name> flystone    </name>
    <street> 1401 Main Street  </street>
    <city state="NC">Anytown</city>
    <postal-code> 210000  </postal-code>

</address> 

或是这样:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE address [

  <!ELEMENT address (name, street, city, postal-code)>

  <!ELEMENT name (#PCDATA)>

  <!ELEMENT street (#PCDATA)>

  <!ELEMENT city (#PCDATA)>

  <!ELEMENT postal-code (#PCDATA)>

 

  <!ATTLIST city state (NC|NM) "NC" >

]>

<address>

    <name> flystone    </name>

    <street> 1401 Main Street  </street>

    <city state="NC">Anytown</city>

    <postal-code> 210000  </postal-code>

</address>

 

当然 W3C 支持一种基于 XML DTD 代替者,它名为 XML Schema

 

 下面整理XPath

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值