Attendees:

Bob McGrath - NCSA
Martin Westhead - Avaya
Suman Kalia - IBM
Geoff Judd - IBM
Steve Hanson - IBM
Mike Beckerle - IBM

Agenda Review

Context doc discussion - Martin

Issues list:
- write once context variables - expressiveness limit?
- list valued context variables - define them then 'commit' to make them read-only?
- default values for context variables? - breaks write-once behavior?

- hidden: don't want paths to hidden peers to be any different from paths to non-hidden peers - mikeb
- hidden: need to specify the order of traversal for parsing
- hidden: on output, traversal order is very different
- need inputCalc and outputCalc

- hidden: currently says hidden can only appear where elements could appear
- exception needed - simple types need hidden complex sub-structure - 'repDef'
- maybe use hidden attributes and avoid element substructure for simple types.
- or have an explicit repDef construct with a full indirection from a simple type to a complexType that is its representation

- Roundtrip problem is not general data transformation
- Separate tracker for round-trip to data issue
- Copyright slugline example is sufficient


Bundles:

- is this just really for the top-level statements like conversion declarations?
- revisit this once we've overviewed the scoping stuff - probably some features of one or the other are redundant.
- bundles are like xs:include except can be used not-only at top-level.

Conversions:

- are an expository tool
- organize properties into libraries
- plug in conversions are allowed, but built-in property/conversions don't have to be implemented using the plug-in mechanism
- ? DFDL systems might be allowed to not even implement plug-ins

- need to explain XML all the way down idea more clearly. Stream of xs:byte, then streams of higher types.

- test guard should select the conversion
- once selected then requirements

- if you can't find any conversion for something then the schema is invalid.
- if the guard of a conversion is satisfied, but required properties are not present in the context, then the schema is invalid.

- issue: can more than one conversion have the same name?
- issue: what are the update rules for the conversion list in the context as you extend the context with new conversions

- issue: type matching - match exactly? or ignore restrictions? E.g., string of length 1 matches general string, but general string doesn't match string of length 1.

- issue: type A has child derived type B. Conversions for type B cannot be selected based on existance of conversions that have source/target type A. (isA relationship not involved in conversion selection). The type matching has only to do with restrictions actually.

- issue: can different dfdl implementations use different search algorithms? Probably not. They must choose the same set of conversions so the standard can specify the selection algorithm exactly. Implementations are free to use different more efficient algorithms so long as they choose equivalent conversion chains. (need notion of equivalent conversion defined)

- issue: context needs to contain the input-stream type (in the "C" context, or just in the informal context of the parser? E.g., you can ask what is the type of this element without that having to be in the "C" context. The type of the source stream could also be in this informal context.

- property names should be namespace qualified when used in guard and required formulas of conversions.

- conversions stuff doesn't cover all properties. E.g., choice discriminators aren't described how they use as part of conversions.

- issue: alignment - can there be an alignment conversion

Extensibility:

- defineConversion - should express required properties test as well as input type and output type.

- whitebox conversions - doubleInt example doesn't seem intuitive to some.
   suggestion is to name the complex type, separate the named conversion definition and just reference the type name


- change keyword for guards to 'guard' not test, since test is used for statement conditional execution.

- name conflicts: guard vs. selector vs. test - define terms specifically.

- need tracker item re: output

- steve hanson suggests using EDI security segments for the useStream example.

- guard optional - if not specified means guard="true"

Scoping:

- simplify: don't allow base format on construct-specific annoation elements if inside dfdl:default or dfdl:defineFormat.

variable defaults in the context:

- if a variable has a default value, and you keep track of whether anyone has received the default value if they have received the default value then an attempt to set it is an error. This is consistent with single assignment behavior.

variable declaration scope

- a dfdl:declare on an xsd:element with maxOccurs > 1 is about the type, not the particle (not about the entire repeating element vector, but about each element within).

external control of format:

- should do overrides much like element references, i.e., external controls have override behavior.

leaf contexts:

- ? do these distinguish properties from variables

Mike Beckerle
STSM, Architect, Scalable Computing
IBM Software Group
Information Integration Solutions
Westborough, MA 01581
voice and FAX 508-599-7148
home/mobile office 508-915-4795