0

我有一些 xml 文档。文件的结构是这样的:-

<?xml version="1.0" encoding="UTF-8"?>
<patent-assignment>
  <assignment-record>
    <correspondent>
      <name>NORTH AMERICA INTERNATIONAL PATENT OFFIC</name>
      <address-1>P.O. BOX 506</address-1>
      <address-2>MERRIFIELD, VA 22116</address-2>
    </correspondent>
  </assignment-record>
  <patent-assignors>
    <patent-assignor>
      <assignor-name>TSAI, YU-WEN</name>
      <execution-date>
        <date>20050331</date>
      </execution-date>
    </patent-assignor>
    <patent-assignor>
      <assignor-name>HUANG, CHENG-I</name>
      <execution-date>
        <date>20050331</date>
      </execution-date>
    </patent-assignor>
  </patent-assignors>
  <patent-assignees>
    <patent-assignee>
      <assignee-name>FARADAY TECHNOLOGY CORP.</name>
      <address-1>NO.10-2, LI-HSIN ROAD 1, SCIENCE-BASED INDUSTRIAL PARK</address-1>
      <city>HSIN-CHU CITY</city>
      <country-name>TAIWAN</country-name>
    </patent-assignee>
  </patent-assignees>
</patent-assignment>

我在assignor-name和上创建了字段assignee-name。现在我正在运行这样的cts:search查询:-

let $query:=cts:and-query((

    cts:element-query(xs:QName("assignor-name"), 
      cts:field-word-query("Assignor Name", "apple")),
    cts:element-query(xs:QName("assignee-name"), 
      cts:field-word-query("Assignee Name", "salix"))
  ))

for $x in cts:search(fn:doc(), $query)
return $x

其中转让人姓名和受让人姓名是我创建的字段的名称。这些字段分别具有assignor-nameassignee-name作为它们的本地名称。但是当我运行这个查询时,它给了我空序列。我还检查了我的 xml 文档,并且文档中有assignor-name“apple”和assignee-name“salix”的数据,但我仍然没有得到结果。当我仅针对转让人姓名或受让人姓名运行此查询时,我会得到结果,但是当我将它们组合成 an 时and-query,我没有得到任何结果。请帮忙。

4

2 回答 2

2

除了 Dave 指出的命名空间问题之外,element-query和的组合field-query是不寻常的,并且可能不会导致令人满意的结果。

对于此查询,您可以放弃两者以支持cts:element-word-query元素上的简单。

于 2012-05-18T15:38:45.480 回答
1

是的,您可以通过cts:element-word-query以下方式使用该功能:

cts:and-query((cts:element-word-query(xs:QName("pa:assignor-name"),
                                      "apple",
                                      "case-insensitive"
                                      ),
              cts:element-word-query(xs:QName("pa:assignee-name"),
                                     "salix",
                                      "case-insensitive")
              ))
于 2013-04-15T08:17:46.340 回答