2


FLWORの参加について質問があります。これが私のXMLがどのように見えるかの概要です。

<user>
  <user-id>...</user-id>
  <username>...</username>
  <password>...</password>
  <!-- By schema file, there could be unbounded role-ids -->
  <role-id>...</role-id>
  <role-id>...</role-id>
  <role-id>...</role-id>
</user>

<role>
  <role-id>...</role-id>
  <name>...</name>
  <!-- By schema file, there could be unbounded permission-ids -->
  <permission-id>...</permission-id>
  <permission-id>...</permission-id>
  <permission-id>...</permission-id>
</role>

<permission>
  <permission-id>...</permission-id>
  <resource-id>...</resource-id>
  <operation-id>...</operation-id>
</permission>

FLWOR式、クエリがあります。これは、特定のユーザーの一連のアクセス許可を返す必要があります。十分に単純なはずですが、クエリを実行するたびに空のResourceSetを取得する理由がわかりません。

for $i in collection("data/rbac/users")/user[user-id="..."]/role-id
for $j in collection("data/rbac/roles")/roles/role
for $k in collection("data/rbac/permissions")/permission
where $i = $j/role-id and exists($j/permission-id[. = $k/permission-id])
return $k

どんな提案でも大歓迎です。ありがとう、

イゴール

4

2 に答える 2

1

XQueryが提供するデータと一致していないようです。たとえばrole-id、の子ではなく、要素userがないようです。roles提供されたXMLが与えられた場合、このクエリは空のリソースセットを返す可能性があります。

于 2012-05-24T09:59:56.450 に答える
0

ソース XML データの構造が完全に明確ではないため、見分けるのは困難です。しかし、少し矛盾があるようです。XQuery の 2 行目は、rolescollection 内で名前が付けられたノードを想定していますdata/rbac/roles。たぶん、2行目は次のようになります

for $j in collection("data/rbac/roles")/role

? 推測するだけで...

于 2012-05-24T11:22:27.073 に答える