ࡱ> ikh @ 0%bjbj{{ )wI LLLLX03ffffffAAA1111111$4R61L6A~AAT,1LLff2f###?pLfLf1#A1##s*LL,fZ PrF+1t23+7a7(,LLLL7,AA#AAAAA11D (Parsing Rules for resolving points of uncertainty. A point of uncertainty occurs in the data when there is more than one component that might occur at that point. A region of uncertainty starts at the point of uncertainty and ends when the uncertainty is resolved. Points of uncertainty can be neatest but only the area associated with the most recent point of uncertainty is active A point of uncertainty is caused when one is one of the following constructs is used in a DFDL schema An xs:choice An unordered xs:sequence (dfdl:sequenceKind='unordered') An xs:element which is optional or An xs:element has variable number of occurrences (xs:minOccurs not equal to xs:maxOccurs) Each element in aAn xs:sequence containing an floating element. For an xs:choice the point of uncertainty starts when the first element in the choice is tried and ends when the element is either found or not found. If the element was found then the choice is resolved. If the element was not found then a new point of uncertainty is started with the next element in the choice.A point of uncertainty is the beginning of a region of uncertainty in the data. The end of the region of uncertainty is identified as the end of the construct which introduces the point of uncertainty. That is, for an xs:choice, the end of the region of uncertainty is the end of the xs:choice, which is equivalent to the end of any alternative construct contained by the xs:choice. For an unordered xs:sequence, the point of uncertainty is the point where any of the child elements of the unordered sequence can appear. The end of the region of uncertainty is when the element is the end of a child elementeither found or not found. Generally fFor an unordered sequence, another region of uncertainty begins immediately after the end of the previous until the end of the sequence. For an optional element, the point of uncertainty is the point where the elements can appear. The end of the region of uncertainty is when the element is either found or not found either found or not found. it is the end of the element. For an element with a variable number of occurrences, the point of uncertainty is the point where the elements can appear. The end of the region of uncertainty is when the element is either found or not found the end of each such element ends the region of uncertainty, but another beings immediately after that until the array finishes. (TBD: so long as we're not looking at maxOccurs - that's just validation.) For a sequence with a floating element... the point of uncertainty is the point where any of the child elements of the sequence can appear. The end of the region of uncertainty is when the element is either found or not found. Another region of uncertainty begins immediately after the end of the previous until the end of the sequence. (TBD) A region of uncertainty can contain assertions or discriminators which influence how the uncertainty is resolved. Since regions of uncertainty can be nested, the scopes of these assertions and discriminators are similarly nested. An assertion or discriminator influences the nearest enclosing point of uncertainty only, and that point of uncertainty is said to be the associated point of uncertainty for the assertion or discriminator. If an assertion or discriminator appears inside a type or group definition or element declaration which is referenced from elsewhere in the schema, and the global definition or declaration does not contain the associated point of uncertainty, then the associated point of uncertainty may exist in the enclosing schema in a scope surrounding the point of reference.. If there is no associated point of uncertainty at all, then a top level processing error is caused by any assertion failure or discriminator evaluating to false. A DFDL parser is logically a recursive descent parser with backtracking. That is each option at a point of uncertainty is tried in turn, the first one to be found is chosen. If the option is deemed to be 'not found' then any effects of parsing the option are backed out and the next option tried. An option element is deemed to have been found when All the components of the option element are found. A dfd;discriminator associated with the point of uncertainty evaluates to true. before another point of uncertainty is encounteredthe uncertainty is resolved. A xs:sequence or xs:choice with dfdl:initiatedContent finds an initiator for an element The end of the region of uncertainty has been reached without any processing error. (Note: conversion of representation data to an instance of the logical type for the item is a required part of "parsing", and failure to convert is a processing error.) An option is deemed to be not found when A dfdl:assert evaluates to false before another point of uncertainty is encountered. The length of a dfdl:representation 'text' element which has a terminator, separator or parent terminator or separator does not match the required length. A processing error occurs when parsing the value of the element. Processing errors includes, but is not limited to, failure to convert the data to the built-in logical type. Tricky! The beginning of this construct is a point of uncertainty, but so is the prospective beginnning of any construct within it (which has to be an element - children of unordered sequences must be elements in DFDL). Similarly a floating element could be anywhere an element child of the sequence could start. More correctly Each element in a xs:sequence that is a floating element. If I have one or more floating elements in a sequence, each element becomes a point of uncertainty. So it is just like an unordered sequence. (If you recall, the behaviour of an unordered sequence is the same as an ordered sequence with n-1 floaters). Does this rule ever cause composability problems, eg, I reuse a global element in multiple places, and only one of those places is a point of uncertainty. How about we never evaluate a discriminator when there is no point of uncertainty? For an optional element or variable-occurs array, the first thing tried is always item is present, or another item is present. Absent, is the 2nd alternative tried. This clarification is important. Many things are ambiguous otherwise. We wan t "greedy" rule here. If a variable-occurs array can absorb another item's representation, because the syntax matches the representation, then we want that item to be considered part of that array, and we don't want it perhaps being the first thing in the next content to be considered. In what order? See below. I think the answer here is "the end of the region of uncertainty". Correct, but a validation failure is not a processing error, we need to make that clear. Otherwise switching on validation makes a difference to the parsing. Why is another point of uncertainty involved? I think these can nest, and inner ones resolve separately and in isolation from enclosing outer ones. I think it is before the item is completely parsed and the representation has been converted successfully to a logical value. But not validated. The concept of the "end of the region of uncertainty" is probably needed. For an element that is the arm of a choice, the end of the region of uncertainty is the end of that element. (terminator, or length reached) Any reason why specific scenario was called out? What about failure to find a terminator? Should we be more general and phrase things in terms of a failure to extract the data correctly according to its dfdl markup and length related properties? 34K^z Ǯ|cJc10Hhf4Fh mB*CJOJQJ^JaJph0Hhb4Fh]B*CJOJQJ^JaJph0Hha4Fh]B*CJOJQJ^JaJph0Hh`4Fh]B*CJOJQJ^JaJph0Hh_4Fh]B*CJOJQJ^JaJph0Hh^4Fh]B*CJOJQJ^JaJph)h]h\B*CJOJQJ^JaJph)h]hjfB*CJOJQJ^JaJph hjfhjfhjfh\ 34 ZL7$8$C$Eƀ4FH$gd,<J7$8$Eƀ`4FH$gd,< 7$8$H$gdjfgdjfI%  ( / 3 9 = } εjE0)h]h\B*CJOJQJ^JaJphHh]h\h mB*CJOJQJ^JaJcHdhdhdhc4Fph0Hhj4Fh=B*CJOJQJ^JaJph0Hhc4Fh mB*CJOJQJ^JaJph0Hh4Fh,<B*CJOJQJ^JaJph0Hh4Fh,<B*CJOJQJ^JaJph0Hh4Fh,<B*CJOJQJ^JaJph0Hh4Fh,<B*CJOJQJ^JaJph . / P Q T b ҿ҅`M16Hh!٦h]h\B*CJOJQJ^JaJph%jh]h5&0JOJQJU^JHh]h?xh mB*CJOJQJ^JaJcHdhdhdhd4Fph)h]h?xB*CJOJQJ^JaJphHh]h\h mB*CJOJQJ^JaJcHdhdhdhd4Fph%jh]hIW0JOJQJU^J)h]h\B*CJOJQJ^JaJph0Hhd4Fh mB*CJOJQJ^JaJph eN & F7$8$Eƀ٦.H$gd\L7$8$C$Eƀ4FH$gd m 0 Q cN & F7$8$Eƀ٦.H$gd\N & F7$8$Eƀ٦.H$gd\Q cN & F7$8$Eƀ٦.H$gd mN & F7$8$Eƀ4F.H$gd m gL7$8$C$Eƀ&٦H$gd5WL7$8$C$Eƀ!٦H$gd5W # ) $ , εX+XXHh!٦h]h-qXh m6B*CJOJQJ^JaJcHdhdhdhe4FphUHh!٦h]h-qXh mB*CJOJQJ^JaJcHdhdhdhe4Fph0Hhp4FhSB*CJOJQJ^JaJph0Hho4FhSB*CJOJQJ^JaJph0Hhn4FhSB*CJOJQJ^JaJph0Hhm4FhSB*CJOJQJ^JaJph0Hhk4Fh=B*CJOJQJ^JaJph  8 S ԩb7b7bUHh*٦h]hIWhSB*CJOJQJ^JaJcHdhdhdhp4FphUHh"٦h]hIWhSB*CJOJQJ^JaJcHdhdhdhp4Fph6Hh&٦h]hIWB*CJOJQJ^JaJphUHh&٦h]hIWh mB*CJOJQJ^JaJcHdhdhdhe4FphUHh!٦h]hIWh mB*CJOJQJ^JaJcHdhdhdhe4Fph `L7$8$C$Eƀ&٦H$gdSR7$8$C$Eƀ&٦H$gdSop4Fd& ajtuԸgNg#UHh'٦h]hIWhSB*CJOJQJ^JaJcHdhdhdht4Fph0Hhw4FhSB*CJOJQJ^JaJph0Hhv4FhSB*CJOJQJ^JaJph6Hh'٦h]hIWB*CJOJQJ^JaJph6Hh"٦h]hIWB*CJOJQJ^JaJph6Hh&٦h]hIWB*CJOJQJ^JaJphUHh&٦h]hIWhSB*CJOJQJ^JaJcHdhdhdhp4Fph./<=>XˠnR66Hh(٦h]hIWB*CJOJQJ^JaJph6Hh'٦h]h-qXB*CJOJQJ^JaJph0Hhu4FhSB*CJOJQJ^JaJph0Hh{4FhrhB*CJOJQJ^JaJphUHh'٦h]hIWhrhB*CJOJQJ^JaJcHdhdhdhz4Fph6Hh'٦h]hIWB*CJOJQJ^JaJph0Hht4FhSB*CJOJQJ^JaJph >?gL7$8$C$Eƀ(٦H$gd5WL7$8$C$Eƀ&٦H$gdrhX  ,-bnU96Hh(٦h]hIWB*CJOJQJ^JaJph0Hhu4FhSB*CJOJQJ^JaJphUHh(٦h]hIWhSB*CJOJQJ^JaJcHdhdhdhv4Fph0Hhx4FhrhB*CJOJQJ^JaJph0Hhw4FhSB*CJOJQJ^JaJph0Hhv4FhSB*CJOJQJ^JaJph6Hhv4Fh]hSB*CJOJQJ^JaJph ?-gL7$8$C$Eƀx4FH$gdSL7$8$C$Eƀ(٦H$gdSbc;<eԸtI-6Hh(٦h]hIWB*CJOJQJ^JaJphUHh(٦h]hIWhrhB*CJOJQJ^JaJcHdhdhdh4FphUHh(٦h]hIWhrhB*CJOJQJ^JaJcHdhdhdhx4Fph0Hhx4FhrhB*CJOJQJ^JaJph6Hhx4Fh]hrhB*CJOJQJ^JaJphUHh(٦h]hIWhrhB*CJOJQJ^JaJcHdhdhdhy4Fph e~˯h=!6Hhy4Fh]hrhB*CJOJQJ^JaJphUHh+٦h]hIWhrhB*CJOJQJ^JaJcHdhdhdhy4Fph6Hh+٦h]hIWB*CJOJQJ^JaJphUHh)٦h]hIWhrhB*CJOJQJ^JaJcHdhdhdhw4Fph6Hh)٦h]hIWB*CJOJQJ^JaJph6Hh(٦h]hIWB*CJOJQJ^JaJph0Hh4FhrhB*CJOJQJ^JaJph-gL7$8$C$Eƀ)٦H$gdrhL7$8$C$Eƀu4FH$gdrh gL7$8$C$Eƀ{4FH$gdrhL7$8$C$Eƀ+٦H$gd5W %&'䲖kH,6Hh!٦h]hIWB*CJOJQJ^JaJphDjh]h5&hrh0JOJQJU^JcHdhdhdhy4FUHh+٦h]hIWhrhB*CJOJQJ^JaJcHdhdhdhy4Fph6Hh{4Fh]hrhB*CJOJQJ^JaJph0Hh{4FhrhB*CJOJQJ^JaJph0Hhz4FhrhB*CJOJQJ^JaJph6Hhz4Fh]hrhB*CJOJQJ^JaJph '(g^ 7$8$H$gd5WL7$8$C$Eƀ٦H$gd5WL7$8$C$Eƀ+٦H$gdrh'(0hf乎c88cUHh٦h]h-qXh,<B*CJOJQJ^JaJcHdhdhdh4FphUHh٦h]h-qXh,<B*CJOJQJ^JaJcHdhdhdh4FphUHh٦h]h-qXh,<B*CJOJQJ^JaJcHdhdhdh4FphUHh+٦h]hL h,<B*CJOJQJ^JaJcHdhdhdh4Fph6Hh٦h]h-qXB*CJOJQJ^JaJph aoIƛT)TUHh٦h]h-qXh,<B*CJOJQJ^JaJcHdhdhdh4FphUHh٦h]h-qXh,<B*CJOJQJ^JaJcHdhdhdh4Fph6Hh٦h]h-qXB*CJOJQJ^JaJphUHh٦h]h-qXh,<B*CJOJQJ^JaJcHdhdhdh4FphqHh٦h]h-qXh,<B*CJOJQJ^JaJcHdhdhdh4Fph٦*6OJQJ^JLMhL7$8$C$Eƀ٦H$gd5WL7$8$C$Eƀ٦H$gd5WJ7$8$Eƀ٦H$gd,<IKL{ԩ~S~0Djh]h5&h,<0JOJQJU^JcHdhdhdh4FUHh٦h]h-qXh,<B*CJOJQJ^JaJcHdhdhdh4FphUHh٦h]h-qXh,<B*CJOJQJ^JaJcHdhdhdh4FphUHh٦h]h-qXh,<B*CJOJQJ^JaJcHdhdhdh4FphUHh/٦h]hFh,<B*CJOJQJ^JaJcHdhdhdh4FphHNyzԸ~Y~6Djh]hc!0hrh0JOJQJU^JcHdhdhdh{4FHh]h5WhrhB*CJOJQJ^JaJcHdhdhdh{4FphHh]hjfhrhB*CJOJQJ^JaJcHdhdhdh{4Fph)h]h-qXB*CJOJQJ^JaJph6Hh٦h]h-qXB*CJOJQJ^JaJphUHh٦h]h-qXh,<B*CJOJQJ^JaJcHdhdhdh4FphMRSg^ULU 7$8$H$gdrh 7$8$H$gdjf 7$8$H$gd5WL7$8$C$Eƀ٦H$gd5WL7$8$C$Eƀ٦H$gd,<z{}!(/0Sݸ~Y@$~6Hh4Fh]hrhB*CJOJQJ^JaJph0Hh4FhrhB*CJOJQJ^JaJphHh]hjfhrhB*CJOJQJ^JaJcHdhdhdh4Fph)h]hjfB*CJOJQJ^JaJphHh]hjfhrhB*CJOJQJ^JaJcHdhdhdh{4FphHh]h5WhrhB*CJOJQJ^JaJcHdhdhdh{4FphDjh]h'hrh0JOJQJU^JcHdhdhdh{4F Smt{| Ŭ{f{J{J{%Hh]hjfh,<B*CJOJQJ^JaJcHdhdhdh4Fph6Hh ٦h]h-qXB*CJOJQJ^JaJph)h]h5WB*CJOJQJ^JaJph)h]hjfB*CJOJQJ^JaJph6Hh4Fh]hrhB*CJOJQJ^JaJph0Hh4FhrhB*CJOJQJ^JaJphHh]hphrhB*CJOJQJ^JaJcHdhdhdh4Fph)h]hpB*CJOJQJ^JaJph S'cN & F7$8$Eƀ٦.H$gd,<N & F7$8$Eƀ٦.H$gdrh  %),8;įoDUHh1٦h]h'h,<B*CJOJQJ^JaJcHdhdhdh4FphUHh0٦h]h'h,<B*CJOJQJ^JaJcHdhdhdh4Fph)h]h5WB*CJOJQJ^JaJph)h]hjfB*CJOJQJ^JaJph0Hh4Fh,<B*CJOJQJ^JaJphDjh]hc!0h,<0JOJQJU^JcHdhdhdh4F '^R7$8$C$Eƀ0٦H$gd,<o4Fd&N & F7$8$Eƀ٦.H$gdjf,{|}ԩԩԩԩzePe=eP%jh]hc!00JOJQJU^J)h]h5WB*CJOJQJ^JaJph)h]hjfB*CJOJQJ^JaJph6Hh0٦h]h'B*CJOJQJ^JaJph%jh]h'0JOJQJU^JUHh1٦h]h'h,<B*CJOJQJ^JaJcHdhdhdh4FphUHh2٦h]h'h,<B*CJOJQJ^JaJcHdhdhdh4Fph}~\N & F7$8$Eƀ٦.H$gd5W 7$8$H$gdjfL7$8$C$Eƀ1٦H$gd,<!"#'(gt19GHIJP R !!!!իիՃqgcgcgcgcgc[cgcghc!0h=H*h=jh=0JU#hjfB*CJOJQJ^JaJph)h]hYkB*CJOJQJ^JaJph%jh]h'0JOJQJU^J)h]hpB*CJOJQJ^JaJph)h]h5WB*CJOJQJ^JaJph)h]hjfB*CJOJQJ^JaJph)h]h\B*CJOJQJ^JaJph#HI'(cZXXXXSXgd5& 7$8$H$gdjfN & F7$8$Eƀ٦.H$gd5WN & F7$8$Eƀ٦.H$gd\ g h !!!7"8""l#m###$$$$$%%% 7$8$H$gdjf!8"9"""$$%%%#hjfB*CJOJQJ^JaJphh,<jh=0JUh= '.........)()()0P8$:pp/ =!"#$%D@D NormalCJ_HaJmH nHsH tHZ@Z jf Heading 1$<@&5CJ KH OJQJ\^JaJ DA@D Default Paragraph FontRi@R  Table Normal4 l4a (k@(No ListXOX jf Char65CJ KH OJPJQJ\^J_HaJ mH nHsH tHRY@R jf Document Map-D M OJQJ^JB'@B c!0Comment ReferenceCJaJ<@"< c!0 Comment TextCJaJ@j!"@ c!0Comment Subject5\H@BH c!0 Balloon TextCJOJQJ^JaJ Mike Beckerle Steve Hanson.% yz {MJBogSMHumSMHmSMHmMJBkgSMHSmMJBkgSMHmMJBjgSMHUm%٦{fff٦f0٦f٦f=w v 340Q>?- ' ( LMRS'}~HI'(gh78lm00000 0 0 0 0 00000000000000000000000000 0 0 000000 0 0 00@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 @0 @0 @0 @0 @0 @0 @0 @0 @0  0340Q>?- ' ( LMRS'}~HI00000 0 0 0 0 00000000000000000000000000 0 0 000000 0 0 00}@0 Xbe'IzS !% "$%(*+-.01357: Q ?- MS'%!#&'),/24689%8@0(  B S  ? ogummmkgSmkgmjgUm CiK .% yz {K!G\I24=@ N !I33333333333333  (/& & ) ) %II7aI_C,`U|Y*b""dvT 1Ui*&U0&n[A t6h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.@.@.@.@.@.@.@.@.@.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.T 1Ub"[A ti_C,0&n|Y                                                      nmJ1aLs(C|IJ>JA L j -O = 5 @< Kv 3{ xJd dWg01[s$1g;^G-LZ)Tg8\%"]'T $!t")$$;$(|$%l&5&~#(\(&&)$8)# *o:*~*S+Eq+6,0-( 0c!0h01P12:3g5+5Q56x-616r7O8929L9SP9t:;<#;#d;,<===E*=>>O>@@p@@A;BCrDEwqE|FN GGGOG H~ HaH#;I_I-K>K<M%MnuMcNdO8P>Q\Q,^QwQyQ/Rv7RNTS|^ST`Tl}UNV5WIWTWfmX-qXY5_YlnY)[4\ V\e]=] ^^b1^/_`8`a`g`q`a>Hbz ctcc}dX*deeC+g}rhuixi{ijIjwjkYk m!n)7nbgn p 8p/>p6rMrJ9sdRtu[\v&x?xy+z${-]|?R~a~z}~=MO }zYImpcz-$k[>IwgI'yh_g:r U'irh p:mN+l0(*5:_ "CPT\G /g!~ZsbyR*co^O=',b4>{fpx\Y+\L g: U$K5cB$'01I7x# nt1Zm[yD/`cQ$1 \#h-15kuDGr,2F@'CMIT]f.hRljf-,9ql93vO@]&_Vq)<?@ABCDEFGHIJKLMNOPQRSTUVWYZ[\]^_abcdefgjRoot Entry Fp#rFl1Table<7WordDocument)wSummaryInformation(XDocumentSummaryInformation8`CompObjj  FMicrosoft Word Document MSWordDocWord.Document.89q