仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1567|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA教程之根源XML数据库Xindice 先容 (1.0版)

[复制链接]
灵魂腐蚀 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:36:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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就不一样了,保持微软的一向风格,源代码不公开
admin 该用户已被删除
沙发
发表于 2015-1-21 11:01:34 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
莫相离 该用户已被删除
板凳
发表于 2015-1-23 07:34:20 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
海妖 该用户已被删除
地板
发表于 2015-1-27 11:02:24 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
蒙在股里 该用户已被删除
5#
发表于 2015-1-30 05:21:08 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
小女巫 该用户已被删除
6#
发表于 2015-2-6 07:35:31 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
简单生活 该用户已被删除
7#
发表于 2015-2-15 16:14:05 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
飘灵儿 该用户已被删除
8#
发表于 2015-2-20 23:42:12 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
深爱那片海 该用户已被删除
9#
发表于 2015-2-28 10:15:08 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
柔情似水 该用户已被删除
10#
发表于 2015-3-6 13:36:02 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
冷月葬花魂 该用户已被删除
11#
发表于 2015-3-6 15:31:25 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
老尸 该用户已被删除
12#
发表于 2015-3-13 03:12:57 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
爱飞 该用户已被删除
13#
发表于 2015-3-20 11:26:06 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
再见西城 该用户已被删除
14#
发表于 2015-3-27 09:08:19 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
活着的死人 该用户已被删除
15#
发表于 2015-3-27 12:12:23 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
不帅 该用户已被删除
16#
发表于 2015-4-4 18:39:36 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
愤怒的大鸟 该用户已被删除
17#
发表于 2015-4-24 19:18:26 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
只想知道 该用户已被删除
18#
发表于 2015-5-6 18:09:32 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
金色的骷髅 该用户已被删除
19#
发表于 2015-6-4 03:37:47 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 02:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表