Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MarkLogic到Java&;反解_Java_Xml_Marklogic - Fatal编程技术网

MarkLogic到Java&;反解

MarkLogic到Java&;反解,java,xml,marklogic,Java,Xml,Marklogic,我需要从MarkLogic服务器中查询XML,并将其封送到Java对象中。做这件事的好方法是什么?具体而言: 使用MarkLogic对XML技术堆栈有任何影响吗?(也就是说,MarkLogic是否有一些东西导致了搜索、读取和写入XML片段的不同方法?) 我应该自己使用一个XMLAPI来处理XML,还是有更简单的方法 值得为此使用JAXB吗 有人问了一个很好的问题,为什么我要使用Java。我使用的是Java/javaee,因为我在这门语言中最强。这是一个人的项目,我不想被困在任何地方。该项目旨在开

我需要从MarkLogic服务器中查询
XML
,并将其封送到Java对象中。做这件事的好方法是什么?具体而言:

  • 使用MarkLogic对XML技术堆栈有任何影响吗?(也就是说,MarkLogic是否有一些东西导致了搜索、读取和写入XML片段的不同方法?)
  • 我应该自己使用一个XMLAPI来处理XML,还是有更简单的方法
  • 值得为此使用JAXB吗

  • 有人问了一个很好的问题,为什么我要使用Java。我使用的是Java/javaee,因为我在这门语言中最强。这是一个人的项目,我不想被困在任何地方。该项目旨在开发web服务API和数据处理与转换(CSV到XML)功能Java/JavaEE可以很好地做到这一点,而且做得很优雅。

    用于此。据我所知,JAXB更强大,但也更复杂。

    有许多XML->Java对象库。我认为您可能希望通过搜索通用的Java XML编组/解编组问题来寻找这个问题的答案,例如:

    您的用例仍然不是很清楚,尽管标题编辑很有帮助-如果您正在寻找Java连接,您可能还想看看哪个允许您从MarkLogic XQuery中执行Java代码

    使用MarkLogic对XML技术堆栈有任何影响吗

    不,当它从MarkLogic中出来时,它只是可能来自任何地方的XML

    我需要查询XML并将其封送到Java对象中

    为什么?

    如果你有一个很好的理由使用Java,那么我们需要知道这个理由是什么,然后才能告诉你哪种Java技术是合适的

    如果您没有充分的理由使用Java,那么最好使用高级XML处理语言,如XSLT或XQuery


    至于JAXB,当您的模式相当简单和稳定时,它是合适的。如果模式很复杂(例如学术期刊中文章的模式),那么JAXB可能会因为生成的类的数量而变得非常笨拙。使用它来处理XQuery输出的一个问题是,XQuery输出很可能不符合任何已知的模式,并且对于编写的每个查询,XQuery结果的结构都会不同。

    注意:我是负责人,也是专家组的成员

    使用MarkLogic对XML技术堆栈有任何影响吗? (也就是说,MarkLogic是否会导致不同的结果 搜索、读取和写入XML片段的方法?)

    可能。一些面向XML的库比其他库支持更多种类的文档。MOXy利用基于XPath的映射,使其能够处理更多种类的文档。以下是一些例子:

    我应该自己使用一个XMLAPI来处理XML,还是存在 更简单的方法

    使用框架通常比较容易。JavaSE可能提供用于处理XML的标准库:JAXB()、XPath()、DOM、SAX、StAX。由于这些标准,还有其他实现(即MOXy和apachejaxme实现JAXB)

    值得为此使用JAXB吗


    是的。

    使用JAXB解压XQuery提供的xml已经5年了,我不得不说,我发现它非常有用并且节省时间。至于复杂性,它很容易学习和使用,大概占你使用它的90%。我已经将它用于简单和复杂的模式,并且发现它非常高效和省时。从MarkLogic中执行Java代码通常是不可能的,因为它在MarkLogic服务器上的一个单独的VM中运行,所以它实际上无法利用Java EE web应用程序中的任何会话状态或库。使用JAXB,获取结果流并将其转换为Java对象非常容易。关于这件事,我真的说得太多了。它使我的开发工作变得非常简单,并允许您利用Java来完成它最擅长的事情(跨各种技术和平台的丰富集成、高级业务逻辑、用于繁重处理工作的快速内存管理等),同时仍然使用XQuery来完成它最擅长的事情(即搜索和转换内容).

    谢谢。我稍微修改了我的问题。@mblakele-JAXB更强大。就复杂性而言,这里有一个并排的示例,演示如何使用JAXB和XStream将相同的对象模型映射到已知的XML模式:。注意:我是EclipseLink JAXB(MOXy)的负责人。@Mike:模式很简单,但不存在。这将是主项目的一个辅助项目。@Mike:我在正文中回答了Java问题。好问题。@Mike:噢?“Saxon XSLT处理器的开发人员”将此问题视为他的锤子上的钉子。为什么是Java还是C#?可能是语言的设计、自然本体、语法特征、静态类型、可读性和可维护性、编译器服务、智能感知、自动完成、参考突出显示/替换、IDE和编辑器、代码着色、错误检查、静态分析、内置注释和帮助系统,即使是拼写检查、调用堆栈、单步调试、调用层次结构、代码可视化工具,我也要继续吗?不,不要。我只是不喜欢看到人们编写100行Java,而10行XQuery或XSLT就可以完成这项工作,唯一的原因是他们喜欢使用熟悉的Java技能和工具。正如我所说的,在我参与的项目中,当模式相当简单且非常稳定时,JAXB工作正常;在模式复杂或频繁变化的情况下,这是一场灾难。我没有排除使用Java的可能性,我只是问是否有很好的理由