我是 XML 数据库的新手,特别是,我正在尝试学习 Marklogic 的工作原理。如果这些问题太天真或太明显,我深表歉意。
我想做的是在 Marklogic 中实现 MongoDB 样式的文档引用,因为我认为该模式非常适用于后者,它本身就是一个面向文档的数据库。
这是 MongoDB 文档中关于手动和 DBRef 样式文档引用的内容:
http://docs.mongodb.org/manual/reference/database-references/
MongoDB 建议使用手动文档引用。
现在,我能看到的最直接的方法是将这条信息定义为模式定义的一部分;从 objectid、一本书和出版商的定义开始:
<xs:simpleType name="objectId">
<xs:restriction base="xs:string">
<xs:length value="24"/>
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="Publisher">
<xs:complexType>
<xs:attribute name="id" type="fbc:objectId" use="required"/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="location" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Book">
<xs:complexType>
<xs:attribute name="Title" type="xs:string"/>
<xs:attribute name="publisherId" type="fbc:objectId" use="required"/>
</xs:complexType>
</xs:element>
所以三个问题:
这是否足以对书籍与其出版商之间的文档引用进行建模?对于基于 Schema 的 XML 文档,是否有更好的方法?
在 Marklogic(或任何其他 XML 数据库,例如 existDB、Senda 或 Basex)中执行 XQuery 时,这种方法会带来困难吗?
Marklogic 声明它可以使用“模块化文档”,它使用 XPointer 和 XInclude 保存某种类型的特殊文档引用:
使用该方法代替手动文档引用有什么优势吗?是否有此功能的有效 Java API 示例?
如果这些问题太多,我提前道歉,但我相信它们都与此处所述的总体问题有关。谢谢。
更新:
我想我会在适当的地方采取一些数据反规范化,并在需要时使用普通的旧文档 URI 属性来引用其他文档。我猜这不是最好的方法,但我认为它可能已经足够好了。我会不断更新我的发现。谢谢!
最佳答案
正如 David 和 WST 所指出的,MarkLogic 强调非规范化而非连接。存储数据结构树或结构化文本内容使得大规模检索高性能文档成为可能。
也就是说,MarkLogic 确实支持联接。您可以使用 XInclude 聚合或仅使用其值为相关文档的文档 URI 的元素或属性。 (链接方法类似于 HTML 中的链接。)此类链接可以由服务器上的 XQuery 解析,也可以通过使用单个查询检索相关文档在客户端上解析。
关于mongodb - 在 XML 数据库中实现 MongoDB 样式文档引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18220528/
我怎样才能完成http://php.net/manual/en/function.call-user-func-array.php在ruby中?所以我可以这样做:classAppdeffoo(a,b)putsa+benddefbarargs=[1,2]App.send(:foo,args)#doesn'tworkApp.send(:foo,args[0],args[1])#doeswork,butdoesnotscaleendend 最佳答案 尝试分解数组App.send(:foo,*args)
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为
我有一大串格式化数据(例如JSON),我想使用Psychinruby同时保留格式转储到YAML。基本上,我希望JSON使用literalstyle出现在YAML中:---json:|{"page":1,"results":["item","another"],"total_pages":0}但是,当我使用YAML.dump时,它不使用文字样式。我得到这样的东西:---json:!"{\n\"page\":1,\n\"results\":[\n\"item\",\"another\"\n],\n\"total_pages\":0\n}\n"我如何告诉Psych以想要的样式转储标量?解
我正在为一个项目制作一个简单的shell,我希望像在Bash中一样解析参数字符串。foobar"helloworld"fooz应该变成:["foo","bar","helloworld","fooz"]等等。到目前为止,我一直在使用CSV::parse_line,将列分隔符设置为""和.compact输出。问题是我现在必须选择是要支持单引号还是双引号。CSV不支持超过一个分隔符。Python有一个名为shlex的模块:>>>shlex.split("Test'helloworld'foo")['Test','helloworld','foo']>>>shlex.split('Test"
有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳
我需要在RubyonRails中实现无向图G=(V,E)并考虑构建一个Vertex和一个Edge模型,其中Vertex有_多条边。由于边恰好连接两个顶点,您将如何在Rails中执行此操作?您是否知道任何有助于实现此类图表的gem或库(对重新发明轮子不感兴趣;-))? 最佳答案 不知道有任何现有库在ActiveRecord之上提供图形逻辑。您可能必须实现自己的Vertex、EdgeActiveRecord支持的模型(请参阅Rails安装的rails/activerecord中的vertex.rb和edge.rb/test/fixtur
我想让一个yaml对象引用另一个,如下所示:intro:"Hello,dearuser."registration:$introThanksforregistering!new_message:$introYouhaveanewmessage!上面的语法只是它如何工作的一个例子(这也是它在thiscpanmodule中的工作方式。)我正在使用标准的rubyyaml解析器。这可能吗? 最佳答案 一些yaml对象确实引用了其他对象:irb>require'yaml'#=>trueirb>str="hello"#=>"hello"ir
我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。问题1)我想知道rubyonrails是否有功能类似于primefaces的gem。我问的原因是如果您使用primefaces(http://www.primefaces.org/showcase-labs/ui/home.jsf),开发人员无需担心javascript或jquery的东西。据我所知,JSF是一个规范,基于规范的各种可用实现,prim