在制定此流程的详细信息时,我们意识到我们计划提供的主要功能之一是通过各种类型的资源(例如人员,文档和位置)进行相当复杂的搜索。
现在,很明显搜索的细节在很大程度上取决于搜索空间。然而,有许多普遍存在的元概念。例如,逻辑运算符连接搜索谓词和这些操作的层次结构(大括号)和优先级规则;范围查询数值,正则表达式匹配字符串,等等。鉴于这些概念,XML立即浮现在脑海中,作为查询的充分表示(DSL也是如此,但我认为在我们的案例中,这太过于枪支了。)
所以我的问题是:是否有一种XML元语言可以基于我们自己的特定于域的方言来表达这样的查询?还是有其他可能性到目前为止还没有超出我们的想法吗?
答案 0 :(得分:1)
可以使用您自己的函数等扩展XQuery,但这不是完全基于XML的(它使用 XML,但本身不是XML)。
答案 1 :(得分:1)
以下架构在GIS世界中广泛使用:
以下是一个例子:
<ogc:Filter xmlns:gml="http://www.opengis.net/gml">
<ogc:And>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>isoap:CreationDate</ogc:PropertyName>
<ogc:Literal>2007-07-31</ogc:Literal>
</ogc:PropertyIsGreaterThan>
<ogc:Or>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>isoap:Type</ogc:PropertyName>
<ogc:Literal>service</ogc:Literal>
</ogc:PropertyIsEqualTo>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>isoap:Type</ogc:PropertyName>
<ogc:Literal>application</ogc:Literal>
</ogc:PropertyIsEqualTo>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>isoap:Type</ogc:PropertyName>
<ogc:Literal>dataset</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Or>
</ogc:And>
</ogc:Filter>
这可以在关系数据库以及面向文档的数据库中处理,也可以像Lucene一样使用全文索引进行处理。