Thanks Tim. I understand now. Your
rule is fine. That's what IBM WTX does. It is just looking for the initiator
at that point, and nothing else.
Regards
Steve Hanson
Programming Model Architect, WebSphere Message Broker,
OGF DFDL WG Co-Chair,
Hursley, UK,
Internet: smh@uk.ibm.com,
Phone (+44)/(0) 1962-815848
From:
| Tim Kimber/UK/IBM@IBMGB
|
To:
| dfdl-wg@ogf.org
|
Date:
| 04/02/2010 16:38
|
Subject:
| Re: [DFDL-WG] Rules for resolving ambiguity
in the in-scope terminating markup
|
Sent by:
| dfdl-wg-bounces@ogf.org |
Good question - I must admit that I put that in as an afterthought. There's
an attempted explanation below, which might be off target.
Consider this sequence:
<xs:sequence
dfdl:sequenceKind="ordered"
dfdl:initiatedContent="true"
dfdl:separator=":"
dfdl:separatorPosition="infix"
dfdl:separatorPolicy="require"
>
<xs:element dfdl:initiator=":a:" lengthKind="delimited"
minOccurs="0"/>
<xs:element dfdl:initiator=":b:" lengthKind="delimited"
minOccurs="0"/>
</xs:sequence>
It could have the following representations:
{:a:valueOfA::b:valueOfB}
{::b:valueOfB}
{:a:valueOfA:}
After parsing the { the next item could be either a's initiator, or the
group's separator. I'm saying that a's intiator takes precedence here.
( in other words, when parsing a group's content we look for the initiator
of the first element before scanning for terminating markup )
Alternatively, we could specify the opposite behaviour and insist that
in-scope terminating markup is always checked before any other group content.
That would make the above difficult or impossible to parse using DFDL,
I think.
regards,
Tim Kimber, Common Transformation Team,
Hursley, UK
Internet: kimbert@uk.ibm.com
Tel. 01962-816742
Internal tel. 246742
From:
| Steve Hanson/UK/IBM
|
To:
| Tim Kimber/UK/IBM@IBMGB
|
Cc:
| dfdl-wg@ogf.org
|
Date:
| 04/02/2010 15:53
|
Subject:
| Re: [DFDL-WG] Rules for resolving ambiguity
in the in-scope terminating markup |
Tim - can you clarify the last sentence please - is the terminating markup
that of the preceding peer element, or the enclosing parent?
Regards
Steve Hanson
Programming Model Architect, WebSphere Message Broker,
OGF DFDL WG Co-Chair,
Hursley, UK,
Internet: smh@uk.ibm.com,
Phone (+44)/(0) 1962-815848
From:
| Tim Kimber/UK/IBM@IBMGB
|
To:
| dfdl-wg@ogf.org
|
Date:
| 03/02/2010 17:47
|
Subject:
| Re: [DFDL-WG] Rules for resolving ambiguity
in the in-scope terminating markup
|
Sent by:
| dfdl-wg-bounces@ogf.org |
These rules seem to work:
a) separators and terminators are collectively called 'terminating markup'.
b) initiators are not 'terminating markup'
c) when two items of in-scope terminating markup have a common prefix,
the parser must give precedence to the longest item.
d) when two items of in-scope terminating markup have exactly the same
value, the parser must give precedence to the innermost ( most deeply nested
) item.
e) when the separator and terminator on a group have exactly the same value,
the parser must give precedence to the separator.
If an initiated component can occur at the same point as an item of terminating
markup, the initiator takes precedence.
regards,
Tim Kimber, Common Transformation Team,
Hursley, UK
Internet: kimbert@uk.ibm.com
Tel. 01962-816742
Internal tel. 246742
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU
--
dfdl-wg mailing list
dfdl-wg@ogf.org
http://www.ogf.org/mailman/listinfo/dfdl-wg
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU
--
dfdl-wg mailing list
dfdl-wg@ogf.org
http://www.ogf.org/mailman/listinfo/dfdl-wg
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU