0

XML ファイルの XSD 後の検証に XQuery を使用しています。「ab」タグが子要素「bc」を持つことができるように、ファイルに階層がありますが、「ab」タグの特定の属性値に対してのみです。「ab」の国属性が USA の場合、子要素「bc」が必要ですが、国が DE の場合、子要素「bc」は省略できます。これを XSD と XQuery のいずれか、または組み合わせて行うにはどうすればよいでしょうか?

以下は私が試したコードです:

私はxpathを使用します:

<Check id="1" type="XQuery" title="bc 0) 'bc must be provided for country USA and BE but not for for DE'"> <XQuery> &lt;Errors&gt; { for $ab in //XDATA/ab, $bc in $ab/bc   where ($ab/@country = "USA" or $ab/@country = "BE") and (empty($bc))  return (: Query output :) &lt;Error ln="{$ab/@ln}"&gt; &lt;Case&gt; { data($ab/@countryid) } &lt; &lt;/Error&gt; } &lt;/Errors&gt; </XQuery> </Check> 

よろしくお願いしますBM

4

1 に答える 1

0

予想されるシナリオを確認する方法については、XQUERY の例をご覧ください。

let $x := <ab country="USA"><bc>dsfdsfsd</bc></ab>
let $USA := if($x[@country="USA"][bc]) then "Yes" else "No"
let $DE := if($x[@country="DE"][bc or not(bc)]) then "Yes" else "No"
return
  if($USA="Yes" or $DE="Yes")
  then "Yes"
  else
  if($USA="No" or $DE="No")
  then "No"
  else ()
于 2013-08-01T14:38:33.030 に答える