|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
但是一些大型开发或者是保密型比较高的项目都会用java,原因有2点,一:java是开源的,不怕别人留后门,偷我工具,.net就不一样了,保持微软的一向风格,源代码不公开xml|数据|数据库(Xindice以后的版本是1.1b4,已做了较年夜修改,本文是1.0版的申明文档译文,仅供参考。部分修改在文中略做申明。
――――译者:ksu99)
甚么是Xindice
Xindice中心服务器完整是一个计划来存储XML数据的数据库服务器。用术语来讲,Xindice服务器恰是所谓的NativeXMLDatabase(NXD)。也能够说成是无缝XML数据库,如许的形貌大概会简单了解一些。
这意味着利用这个服务器,你能够最年夜大概的利用XML工具和手艺。收支服务器的一切数据都是XML。利用的查询言语是XPath,编程API撑持DOM和SAX。一切这些关于一个已经在他们的使用中利用过XML的开辟者来讲,应当十分熟习。当与XML数据和Xindice打交道时,没有分歧数据形式之间的映照。你只必要复杂的以XML计划数据,以XML存储。
一切付与你的能够总结为一个词:天真性。XML供应一种极度的天真机制,来对使用数据建模,并在良多情形下同意你制作那些在多半传统体系中难以制作乃至不成能制作的模子机关。这就是半布局化模子,在某些使用程序中是基础构件。经由过程利用一个像Xindice如许的根源XML数据库(NXD)存储半布局化数据,你能够专注于构建使用而不必要忧虑庞大的XML布局怎样映照究竟层数据存储,大概试图用一套严厉的形式强迫束缚天真的数据模子。
毕竟,Xindice是一个工具。它对某些事情来讲,是符合的而对别的的就完整毛病。它最善于的只是存储XML数据。实践上,这就是全体。假如你有大批的XML数据,那末Xindice大概恰好是你必要的工具。但是,假如你的数据不是XML大概你必要准确把持数据的布局,那你最好仍是往利用其他的数据库办理计划。
(译者注:1.1版中,服务器真个安装如今是在Javaservlet引擎(Tomcat)外部署一个WAR档案。而数据库部署在一个servlet引擎内,并同意收集会见。这和1.0版分歧,由于1.0版有本人的服务器框架。如许做是由于本来的服务器框架反复了servlet引擎的良多功效,而分隔后使部署选项加倍天真。)
以后形态
NativeXML数据库手艺是一个十分新的范畴,而Xindice更多的是一个仍在开辟中的项目。服务器以后撑持对格局优秀的(wellformed)XML文档的存储。这意味着对能够放进文档汇合的文档没有任何形式来束缚。这使Xindice成为一个半布局化数据库,并在怎样存储数据方面供应极年夜的天真性,可是也意味着保持一些通用数据库功效,好比数据范例。[1]在以后形态下,Xindice已是一个办理XML数据的壮大工具。可是必要做的还良多。
本文试图形貌这些以后起感化并能够被利用的特征。请反省README文档,它包括很多关于工程以后形态的信息。
注重:Xindice服务器和这个文档都在改善中。接待和勉励任何定见。
特征择要
文档汇合(DocumentCollections):文档被存储在能够被作为全体来查询的汇合中。你能够创立只包括不异范例文档的汇合,也能够创立一个汇合来存储一切的文档。数据库不介怀。
XPath查询引擎:要查询文档汇合,你可使用W3C界说的XPath。这供应了相称的天真性机制,经由过程定位和限定前往了局树来查询文档。
XML索引:为了进步大批文档上查询的功能,能够界说关于元素和属性值的索引。这能够极年夜的减速查询呼应工夫。
XML:DBXUpdate完成:当存储XML到数据库时,也许必要可以在不检索全部文档的情形下改动数据。XUpdate是当你必要做服务器真个数据更新时利用的机制。这是一种基于XML的言语,断定XML修正并同意这些修正像使用到单个文档一样使用于全部文档汇合。
JavaXML:DBAPI完成:关于Java程序员Xindice供应了一个XML:DBAPI完成。这个API将给XML数据库使用带来可移植性,就像JDBC相对干系数据库一样。年夜部分为Xindice开辟的使用将利用XML:DBAPI。(译者注:在1.1版中,有一个嵌进式版本的XML:DBAPI,能够在不利用收集的情形下会见数据库构件Xindice使用程序。这个与启用收集的XML:DBAPI完成完整兼容。)
XMLObjects:XMLObject供应一个服务器扩大机制,来为服务器增添分外的功效。它们能够用来在数据库引擎内实行庞大的操纵,以削减收集带宽,大概增添以后服务器上没有的功效。(译者注:1.1版中XMLObjects已被删除。)
命令行办理工具:为了匡助体系办理员,Xindice供应了一全套命令行驱动的办理工具。一切能够经由过程XML:DBAPI做的事变,也能够从命令行弄定。(译者注:xindiceadmin工具已被删除。之前只能够经由过程xindiceadmin会见的命令如今都经由过程xindice命令完成。这使服务器操纵更复杂一些。命令行工具到场一个选项,同意XPath查询利用定名空间(namespaces)标准。)
CORBANetworkAPI:关于那些乐于利用Java言语的开辟者,Xindice供应了一个CORBAAPI,能够用来构建使用程序。一切经由过程XML:DBAPI可用的功效,都能够经由过程CORBAAPI完成。现实上,XML:DBAPI是制作在CORBAAPI之上的。只管多半Java开辟者将永久不必要晓得CORBAAPI的存在。(译者注:1.1版中,收集会见API是基于XML-RPC而不是CORBA。一切与CORBA相干的代码已从体系中删除。体系如今完整撑持UTF-8编码。)
模块系统布局:Xindice服务器以十分模块化的体例组成。这使其易于增减构件以裁剪服务器,使其成为一个特别事情平台,大概将它嵌进到另外一个使用程序中往。
数据库布局
Xindice服务器是计划来存储XML文档汇合的。汇合能够依照条理布局来布置,与典范的UNIX或Windows文件体系类似。
在Xindice中,数据存储基于一个亦可当文档汇合利用的数据库实例。此数据库实例能够包括恣意数量的子汇合。在Xindice的缺省安装情形下,此数据库实例称为“db”,而一切的汇合路径以/db入手下手。假如想要重定名这个数据库实例也是能够的,固然没有需要如许做。
援用汇合(Collections)的体例与条理式文件体系的援用不异。
1.1.汇合路径实例
假如你在“db”下创立了一个名为my-collection的汇合,其下另有一个名为my-child-collection的汇合,则会见my-child-collection汇合的路径将会是:
/db/my-collection/my-child-collection
在汇合以内能够存储多少范例的对象。你能够存储XML文档、XMLObject和其他汇合。这些对象也分离能够经由过程路径援用。
1.2.汇合路径指定一个文档
扩大后面的例子,在my-child-collection中增添一个名为my-document的文档,这个文档能够经由过程上面路径援用:
/db/my-collection/my-child-collection/my-document
但是这个路径只能够失掉一个。由于你有大概在一个汇合中有多于一个的同名对象[2],当盘算一个路径时就有个优先级序次成绩。优先性顺次是汇合、XMLObject、文档。这就是说,假如有一个文档和一个汇合同名,你将没法检索到文档。[3]
你还能够经由过程指定主机和服务器端标语,来在远程盘算机上会见汇合。
1.3.汇合路径指定一个远程文档
假如后面的例子在一个远程盘算机上,则路径会是如许子:
myhost.domain.com:4080/db/my-collection/my-child-collection/my-document
这也能够用以下的XindiceURI情势:
xindice://myhost.domain.com:4080/db/my-collection/my-child-collection/my-document
[1]XML形式撑持将在Xindice稍后的版本中到场。形式老是可选的,可是它能够用来强迫一个汇合存储特定的文档范例,并同意数据范例撑持
[2]举例来讲,一个子汇合和一个文档
[3]这个束缚将在Xindice前面的版本失掉调剂
但是一些大型开发或者是保密型比较高的项目都会用java,原因有2点,一:java是开源的,不怕别人留后门,偷我工具,.net就不一样了,保持微软的一向风格,源代码不公开 |
|