Hi Folks,

My input file has a field containing the number of "words" in the file, where 
the "words" are the child elements of the root element. Here's the XML that 
parsing produces:

<Document>
    <initial_word>
        <message_length>3</message_length>
    </initial_word>
    <row>...</row>
    <row>...</row>
</Document>

The message_length is the initial_word + number of <row> elements, i.e., 1 + 2 
= 3

I would like to hide message_length because it provides no meaningful 
information in the XML (after all, if you want to know the message length 
simply count the child elements of <Document>).

To hide message_length, I will need a hidden group in my DFDL schema:

    <xs:group name="hidden-MESSAGE_LENGTH ">
        <xs:sequence>
            <xs:element name="hidden" type="unsignedint3" 
dfdl:outputValueCalc="{????}"/>
        </xs:sequence>
    </xs:group>

The challenge that I am having is what XPath to use in dfdl:outputValueCalc. 
Initially, I used this:

dfdl:outputValueCalc="{fn:count(/Document/*)}

Daffodil complained: Wildcard * is not supported.

Then I tried this:

dfdl:outputValueCalc="{fn:count(../following-sibling::row)+1}

Daffodil complained: following-sibling axis is not supported.

Eek!

I don't know what else to try. Any suggestions?

/Roger

Reply via email to