我在Marklogic中有一大组XML文档,其中包含所谓的“智能数字”(ex )。前两个字符代表部门,第二个字符代表项目等)。从数字中解析所需的信息非常复杂,需要数据库查找、ups等。我们有一个处理解析的java进程。每个文档都可以包含其中的几个数字,我希望能够根据智能数字的属性查询XML集。例如,给给定的部门收取了多少小时的账单,或者对一个给定的项目花费了多少小时进行了细分(这些数据可以分布在许多文档中)。这使我认为,我需要以某种方式将解析的数据添加到XML文档中。
我是Marklogic的新手,我想知道在这种情况下,什么才是最佳实践。我可以想到的一件事是编辑每个XML文件并将解析的数据添加到XML中:
所以这个:
<ELEMENT>
<SMART_NUMBER>Blah, Blah, Blah</SMART_NUMBER>
</ELEMENT>
<ELEMENT>
<SMART_NUMBER>Blah2, Blah2, Blah2</SMART_NUMBER>
</ELEMENT>
变成这样:
<ELEMENT>
<SMART_NUMBER>Blah, Blah, Blah</SMART_NUMBER>
<PARSED_DATA>
<DEPARTMENT>BLAH BLAH</DEPARTMENT>
<PROJECT>BLAH BLAH</PROJECT>
…
</ PARSED_DATA>
</ELEMENT>
<ELEMENT>
<SMART_NUMBER>Blah2, Blah2, Blah2</SMART_NUMBER>
<PARSED_DATA>
<DEPARTMENT>BLAH2 BLAH2</DEPARTMENT>
<PROJECT>BLAH2 BLAH2</PROJECT>
…
</ PARSED_DATA>
</ELEMENT>
我不确定是否有一种“更好”的方法,使用语义似乎是可能的:对于文档中的每个智能数字,创建一个将文档链接到智能数字的三重奏。然后,为每个智能数字创建一组三胞胎,定义智能数字的各个部分。但是我对使用语义非常陌生,所以我不知道这种方法是否值得采用。欢迎提出任何意见/建议。
发布于 2016-06-30 06:26:35
发布于 2016-06-29 19:01:57
我认为你走在正确的轨道上。如果您想要快速的分面搜索,那么去或删除数据是目前为止最简单的方法。但是,与其将代码转换为名称(如果我正确理解,这需要复杂的查找),您还可以考虑将智能数字拆分为单独的标识符,如department-id、project-id。您可以在稍后动态地将id转换为名称。
使用语义可能很有趣,但如果您想链接到其他链接数据源,希望使用SPARQL,或者想推断关系,则最感兴趣的是。
哈哈!
https://stackoverflow.com/questions/38107855
复制相似问题