# Item Path Canonicalization Examples

Last modified 22 Apr 2021 17:31 +02: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.