Example

The following example illustrates the usage of extract and literal expressions. Consider the following element:

Copy
<parent>
<child-A t="A1">A1 text</child-A>
<child-B t="B1">
<gc-Y t="Y1">Y1 text</gc-Y>
<gc-Z t="Z1">Z1 text</gc-Z>
<gc-Z t="Z2">Z2 text</gc-Z>
</child-B>
<child-A t="A2">A2 text</child-A>
<child-B t="B2">
<gc-Z t="Z3">Z3 text</gc-Z>
<gc-Z t="Z4">Z4 text</gc-Z>
</child-B>
</parent>

Let the following mapping rule match the <parent> element above. (Again, we do not specify which elements the mapping rule contains – for the purpose of this example, we only need to know that some of these elements use the expression elements.)

Copy
<mapping match="parent">

...
    <!-- e1 -->
    <extract expr="./child-A"/>
...
    <!-- e2 -->
    <extract expr="./child-A{1}"/>
...
    <!-- e3 -->
    <extract expr="./child-A{1}[@t]"/>
...
    <!-- e4 -->
    <extract expr="./child-B[@t]"/>
...
    <!-- e5 -->
    <extract expr="./child-B/gc-Y"/>
...
    <!-- e6 -->
    <extract expr="./child-B/gc-Y[@t]"/>
...
    <!-- e7 -->
    <extract expr="./child-B{2}/gc-Z{2}[@t]"/>
...
    <!-- e8 -->
    <extract expr="./child-A{2}"/>
...
    <!-- e9 -->
    <extract expr="./child-B{2}[@t]"/>
...
    <!-- l -->
    <literal expr="this is literal data"/>
    </mapping

Then:

e1 extracts A1 text.

e2 extracts A1 text.

e3 extracts A1.

e4 extracts B1.

e5 extracts Y1 text.

e6 extracts Y1.

e7 extracts Z4.

e8 extracts A2 text.

e9 extracts B2.

l has the literal value this is literal data.