SQL SERVER可不可以直接导入任意的一个XML文件到数据库,然后可以对它进行XPATH、XUPDATE (50分)

  • 主题发起人 主题发起人 xml2002
  • 开始时间 开始时间
X

xml2002

Unregistered / Unconfirmed
GUEST, unregistred user!
如果有一个巨大的XML文件几百M,没有固定格式,可以放到数据库内,以后可以快速的
进行XPATH、XUPDATE操作吗?
我研究了很久,发现SQL SERVER根本就不支持。其实要支持应该也不难,也这方面的需
要,为什么不支持呢?如果有了这个功能还需要纯XML数据库吗?
谢谢。
--------------------------
在CSDN问了,没有人回答,在着试试
 
如果RDB支持XML类型的数据,应该是可以。
ORACLE9I就新增了XML类型的数据,但是XML文件太大的话,在性能上不太划算。
就算有了这个功能,我个人认为纯XML数据库也会需要。因为现实的需求是千变万化的,
纯XML数据库也有它的用武之地。在一些小型的,简单的应用中,选用纯XML数据库可以
会更好。
 
只有一个XML文件不是数据库。但将XML文件拆分存储,使它可以进行XPATH、XUPDATE的话,
就有点不同。
关键是拆分了,保留了解析信息,以后用XPATH、XUPDATE不用每次都解析,并且方便存储,
可以存在SQL SERVER上。这样就是我说的SQL SERVER为什么不支持这种形式。
还有人能再说说吗?
 
这样就回到了OO的技术路线。关键是拆分,但是拆分的方法不会跳出OO这个大圈子。
商用的数据库可以不支持这种形式,因为开发者自己建立模型
就可以做了,比如SQL SREVER;商用的数据库也可以支持这种形式,比如ORACLE,我觉得是
一种“锦上添花”的功能,虽然这样说可能是低估了在RDB中引入XML数据类型的意义。
我个人认为:随着XML技术的发展和应用的普及,RDB会全面支持XML数据类型的。
 
上MS的站点看了一下,SQL SERVER本来就支持XML,对大数据的XML也有很好的解决方法。
下面是一种和SCHEEMA映射的方法,还有XPATH的,我就不摘录了。不过MS和ORACLE的方法
好象不太一样,研究研究再说。
(提交失败了两次,害得我敲了三次,发言缩水2/3!!!)
Annotated Mapping Schemas
So let's revisit our Customer XSD schema. The end goal was to generate XML that
validated against the schema. Instead of writing SQL queries to generate the
document, let's try mapping the schema directly to our database structures.
To accomplish this, SQL Server has introduced a number of annotations to the
XSD schema language that specify the XML-to-relational mapping. The basics of
these annotations includes mapping between elements and attributes in the XSD
schema to tables/views and columns in the databases. By default, an element
name in an annotated schema maps to a table (view) name in the specified
database, and the attribute name maps to the column name. These annotations
can also be used to specify the hierarchical relationships in XML (thus,
representing the relationships in the database).
 
sythree:
研究的怎样了?
》SQL SERVER本来就支持XML
好象有限制,只是支持规则的--就是表状的XML,这种可以很方便导入。但对不规则的XML,
我是没有看到方法--不必理会XML内部结构,实现通用的处理程序。
还有就是表状的XML导入SQL SERVER,每次进行XPATH、XUPDATE都要解析,我也看不到不用
解析的方法。
谢谢sythree的解答。
 
多人接受答案了。
 
http://www.microsoft.com/china/sql/techinfo/xml/default.asp
SQLXML
XML for SQL Server,又名SQLXML,可帮助开发人员在扩展标记语言(XML)和相关数据之间架设起沟通的桥梁。您还可针对现有关系型数据生成XML视图,并将其作为XML文件加以应用。SQLXML将可面向下列需求提供相关解决方案:
借助XPath查询关系型数据。
借助Transact-SQL查询关系型数据并返回XML格式结果集。
按照XML格式更新关系型数据。
将超大型XML文件装入现有SQL Server 2000数据库,并将其中数据转换为关系型数据。
在您的Web浏览器或Web应用程序中使用URL查询SQL Server数据。
借助OLE DB、Microsoft ActiveX®
Data Objects(ActiveX数据对象,ADO)或Microsoft .NET Managed Classes(可管理类)访问SQL Server XML功能

 
后退
顶部