<q:equal>
<q:path>c:attributes/icfs:name</q:path>
<q:value>cn=foobar,uo=people,dc=nlight,dc=eu</q:value>
</q:equal>
XML Query Language
Deprecated
This functionality is deprecated.
The functionality is still supported and maintained, but it will no longer be extended.
The plan is to remove this functionality sooner or later.
Users of this functionality are strongly encouraged to stop using this functionality and migrate to a newer equivalent.
|
This is a XML-based query language that was used in midPoint for years. It is gradually replaced by midPoint Query Language.
We strongly recommend to use midPoint Query Language for querying data.
Examples
<q:or>
<q:equal>
<q:path>c:name</q:path>
<q:value>jack</q:value>
</q:equal>
<q:equal>
<q:path>c:fullName</q:path>
<q:value>cpt. Jack Sparrow</q:value>
</q:equal>
</q:or>
<q:or>
<q:equal>
<q:path>c:name</q:path>
<q:value>
<t:orig>jack</t:orig>
<t:norm>jack</t:norm>
</q:value>
</q:equal>
<q:equal>
<q:path>c:fullName</q:path>
<q:value>
<t:orig>cpt. Jack Sparrow</t:orig>
<t:norm>cpt jack sparrow</t:norm>
</q:value>
</q:equal>
</q:or>
<q:and>
<q:ref>
<q:path>c:resourceRef</q:path>
<q:value>
<q:oid>ef2bc900-76e0-59e2-86d6-004f02d30000</q:oid>
</q:value>
</q:ref>
<q:equal>
<q:path>c:intent</q:path>
<q:value>default</q:value>
</q:equal>
</q:and>
<q:and>
<q:equal>
<q:path>c:employeeType</q:path>
<q:value>FTE</q:value>
</q:equal>
<q:org>
<q:orgRef>
<q:oid>ef2bc900-76e0-59e2-86d6-004f02d30000</q:oid>
</q:orgRef>
<q:maxDepth>unbounded</q:maxDepth>
</q:org>
</q:and>
The search filter language definition is part of Query Schema. See the FilterType
and derived types in the XSD file for more details.
Filters with Expressions
<q:equal>
<q:path>name</q:path>
<c:expression>
<c:path>$c:account/c:attributes/ri:uid</c:path>
</c:expression>
</q:equal>
<q:org>
<q:ref>
<q:oid>
<c:expression>
<c:path>$role:orgRef</c:path>
</c:expression>
</q:oid>
</q:ref>
<q:maxDepth>unbounded</q:maxDepth>
</q:org>
<q:org>
<q:ref>
<q:query>
<q:filter>
<q:equals>
<q:path>name</q:path>
<c:expression>
<c:path>$role/extension/orgName</c:path>
</c:expression>
</q:equals>
</q:filter>
</q:query>
</q:ref>
<q:maxDepth>unbounded</q:maxDepth>
</q:org>
Note the namespaces.
Motivation
Long time ago, midPoint was completely based on XML. Therefore a XML-based query language was a natural choice. There was even a SOAP web service interface, therefore the XML-based query language was working fine in WSDL interface definitions, can be checked by XSD schema and so on.
However, as midPoint evolved to be independent of particular data representation format (XML, JSON, YAML), the XML-based query language did not make much sense any more. It was also not entirely user-friendly. Therefore it was replaced by midPoint Query Language