Item Path Canonicalization Examples

Last modified 05 Mar 2021 18:03 +01:00

Definition present = whether we have a definition of contextual object at hand (in order to derive unknown namespaces).

Item path Definition present? Canonical format

(null)

-

(empty string)

(empty)

-

(empty string)

c:name

-

\${common}3#name

name

no

\#name

name

yes

\${common}3#name

c:assignment/[1234]/c:activation/c:administrativeStatus

-

\${common}3#assignment\${0}#activation\${0}#administrativeStatus

assignment/[1234]/activation/administrativeStatus

no

\#assignment\#activation\#administrativeStatus

assignment/[1234]/activation/administrativeStatus

yes

\${common}3#assignment\${0}#activation\${0}#administrativeStatus

assignment/[1234]/extension/p:store/p:shelf/c:activation/c:administrativeStatus

no

\#assignment\#extension\http://piracy.org/inventory#store\${0}#shelf\${common}3#activation\${1}#administrativeStatus

assignment/[1234]/extension/p:store/p:shelf/c:activation/c:administrativeStatus

yes

\${common}3#assignment\${0}#extension\http://piracy.org/inventory#store\${1}#shelf\${0}#activation\${0}#administrativeStatus

c:assignment/[1234]/c:extension/p:store/p:shelf/x/c:administrativeStatus

-

\${common}3#assignment\${0}#extension\http://piracy.org/inventory#store\${1}#shelf\#x\${0}#administrativeStatus

c:connectorConfiguration/icfs:configurationProperties/dummy:uselessString

-

\${common}3#connectorConfiguration\${icf}1/connector-schema-3#configurationProperties\${icf}1/bundle/com.evolveum.icf.dummy/com.evolveum.icf.dummy.connector.DummyConnector#uselessString

The number in ${…​} refers to the index of the namespace (only if not empty!) in the list of all unique non-empty namespaces.

E.g. in

assignment/[1234]/extension/p:store/p:shelf/c:activation/c:administrativeStatus

the first non-empty namespace is "p" (http://piracy.org/inventory) then "c" (common-3). Therefore the canonical format is:

\#assignment\#extension\http://piracy.org/inventory#store\${0}#shelf\${common}-3#activation\${1}#administrativeStatus

Also the following explicit shortcuts are provided:

Shortcut Expansion

${common}

http://midpoint.evolveum.com/xml/ns/public/common/common-

${icf}

http://midpoint.evolveum.com/xml/ns/public/connector/icf-

${public}

http://midpoint.evolveum.com/xml/ns/public

${midpoint}

http://midpoint.evolveum.com/xml/ns

${prism}

http://prism.evolveum.com/xml/ns

Rules for shortcuts:

  1. Limit the number of various shortcuts.

  2. Make shortcuts immutable (once defined the expansion must stay unchanged); so no specific versions should be present in the expansion text.