W3C

XML Schema Patterns for Databinding WG F2F

5th - 6th October 2006

W3C ERCIM, INRIA, Sophia Antipolis, France.

Agenda

See also: IRC log

Attendees

Present
Jon Calladine (BT)
George Cowe (Origo)
Paul Downey (BT)
Yves Lafon (W3C)
Regrets
Otu Ekanem (BT)
Priscilla Walmsley (W3C Invited Expert)
Chair
pauld
Scribe
pauld

Contents

Agenda Bashing

<Yves> Yves: we can ask other developers (in the spec) a call for test results

<Yves> and if we should put such gathered results in our pages, we should flag them as contributed

pauld: if we have a call for logs, what process do we need to accept contributions?

<scribe> ACTION: ylafon to investigate IP and process about contribution of logs from third parties
[recorded in http://www.w3.org/2006/10/05-databinding-minutes.html#action101]

<trackbot> Created ACTION-67 - Investigate IP and process about contribution of logs from third parties [on Yves Lafon - due 2006-10-12].

Review of Outstanding Issues

pauld: we need text to explain ISSUE-37 etc that we may offer more than one pattern for a particular structure, eg absence of data, but we don't offer semantics or how to choose the best pattern on offer

ISSUE-20 Extension of Collections

pauld: useful versioning pattern based on xs:any

JonC: xs:any is Advanced

RESOLUTION: close ISSUE-20 as an Advanced Pattern

ISSUE-31 enumerated restriction types

pauld: DecimalEnumeration fails in Mono

JonC: what about the rest of them?

pauld: much the same for all of them in Mono, but many others work across the board. SOAP4r copes with them all.

RESOLUTION: close ISSUE-20 as Advanced

ISSUE-45 attribute use optional/required

pauld: do we have examples?

gcowe: we have AttributeRequired and AttributeOptional

pauld: works with tools i've looked at so far, that is schema-first

jon: will toolkits bounce invalid documents? If they do it's probably not an issue

pauld: Do tools prevent someone not sending it?

all: seems like a generic issue, but invalid behaviour is out of scope

pauld: we can accept this as a Basic pattern and pull it out following more testing

RESOLUTION: close ISSUE-45 as a Basic pattern

ISSUE-46 Fixed Attribute values

pauld: toolkits echo valid documents ok, but don't capture the fixed value in code

Yves: we need operations which do more work than echo, eg increment a number

pauld: it's a nice idea, but requires a different approach for each pattern, so not scalable

Yves: we should call for test code contributions

pauld: you still don't think 'echo' is good enough?

pauld: this smacks of ISSUE-28, what to do if the programming language doesn't fully support a data structure
... in this case initialising or fixing a string is available in most environments, but tools don't support it
... ISSUE-28 doesn't sit happily here, we closed this with no action:

" Discussion around this concluded that as long as the tools do not bail out and reject the schema and allow all valid instance docs to be processed and created (even if it allows invalid docs through) then we are happy for those structures to be included in Basic Patterns. The experience of the schema author is still good..."

pauld: in this case a Ruby developer has to look for the fixed value in the schema
... this reminds me of the constrain by a pattern, information is lost in code generation

JonC: good experience doesn't prevent the user from doing the right thing, but doesn't prevent you sending invalid data

Yves: you need -ve testing here

pauld: unconvinced we can test this 'black box' you have to look at the code
... we need introductory text for ISSUE-28
... under the rules of ISSUE-28 this should be Basic, but lack of fixed value in generated code make me want to set this as Advanced

gcowe: you need to include the behaviour of the source code

Yves: you are welcome to do more than echo
... seeing generated code in the test report is a requirement

pauld: i did this for SOAP4r as snippets.html, lets ask people to make sure they contribute evidence of their working along with a report of captured mesages

pauld: so ISSUE-28 is a floor for what makes a pattern Basic, I think we can still make value judgements on a case-by-case basis
... we need to make sure our text explains this
... i think in this case 'Fixed' is an Advanced pattern

gcowe: i think it's Basic

JonC: i think it's Basic

pauld: why do you want it basic?

JonC: nothing barfs

Yves: we could make it basic and rip it out after more testing

pauld: so in this case they generate the placeholder, just don't populate it and you think that's good enough
... OK we've just rehashed ISSUE-28
... I can live with either, so let's have our FIRST STRAW POLL!!!!

chad, question: options for ISSUE-46

chad, option 1: Basic pattern

chad, option 2: Advanced pattern

<pauld:> vote: 1,2

<pauld:> vote: 2,1

<Yves> vote: 1,2

<JonC> vote:1

<gcowe> vote: 1

chad, count

<chad> Question: options for ISSUE-46

<chad> Option 1: Basic pattern (3)

<chad> Option 2: Advanced pattern (1)

<chad> 4 voters: gcowe (1),JonC (1),pauld (2,1),Yves (1,2)

<chad> Round 1: Count of first place rankings.

<chad> Candidate 1 is elected.

<chad> Winner is option 1 - Basic pattern

RESOLUTION: close ISSSUE-46 as an Basic pattern

ISSUE-67 xsi:type

pauld: it works with some tools, but is a well known limitation of many other tools, e.g. ADB 1.0: http://ws.apache.org/axis2/1_0/adb/adb-howto.html

RESOLUTION: close ISSUE-67 as Advanced

ISSUE-58 anonymous complexType

JonC: we had this internally within BT but failed to work with BEA Weblogic 8.1

pauld: Paul Keil has this as being well supported. ISTR it not working well, do we need more evidence?
... very common pattern, do we want to do this?
... is that an easily fixed bug in one toolkit, or an indication of a widespread problem?
... it's not the end of the world for a pattern to be advanced

pauld: In our experience, venetian blind works well, but should we discount Russian Doll etc? We had that in ISSUE-18, schema authoring styles.

pauld: I'm attracted to the minium to declare victory, but it's always easier for us to take things out than add them in later

RESOLUTION: close ISSUE-58 as an Advanced pattern

LUNCH

ISSUE-64 Union of SimpleTypes

we have an example 'JeanSize'

pauld: can we think about making this based upon the pattern name?

RESOLUTION: close ISSUE-64 Union of simple types as an Advanced pattern

ISSUE-48 Local Elements defined by Reference

pauld: implicitly means global elements

works with toolkits AFAICT

JonC: it's how all doc/lit WSDLs work

RESOLUTION: close ISSUE-48 as a Basic pattern

ISSUE-60 Local Attributes defined by Reference

pauld: déjà vu with ISSUE-48!

RESOLUTION: close ISSUE-60 as a basic Pattern

ISSUE-56 simpleType resricted with min/max facets

pauld: introduces simpleTypes

JonC: chad! chad!

pauld: not like 'fixed'; value space of valid values greater than one
... explains why ISSUE-28 is a value judgement
... SOAP4r barfs at runtime

RESOLUTION: close ISSUE-56 as an Advanced pattern

ISSUE-68 xs:import of Schema 1.0 namespace

George sent mail: http://lists.w3.org/Archives/Public/public-xsd-databinding/2006Sep/0025

pauld: so not WS-I BP compliant, and of course we want to be compatible with the WS-I BP

pauld: OK, we need to consider if and how we reference the BP

pauld: How do we close this issue: Advanced or don't do it?

pauld: What's the use-case? I guess picking up a schema with this cruft in it?
... is it a problem for Advanced?

discussion of models of how WSDLs get built

JonC: we are in the Web services space, this isn't useful and not BP compliant

pauld: should I go to the BP and raise this as an issue?

pauld: OK mark it as Advanced for now, I'll engage the WS-I

<scribe> ACTION: pdowney to raise an issue on ISSUE-68 with the WS-I Basic Profile WG
[recorded in http://www.w3.org/2006/10/05-databinding-minutes.html#action102]

<trackbot> Created ACTION-68 - Raise an issue on ISSUE-68 with the WS-I Basic Profile WG [on Paul Downey - due 2006-10-12].

ISSUE-66 Enumeration based on a SimpleType

JonC: our example is based upon an Advanced pattern, so makes this Advanced?
... unless we come up with a simpler example
... does it make sense to have an enum of an enum?

pauld: or do we have other facets?
... if you're writing a schema you can do this in one type, Basic is for people authoring schemas in the main
... however Origo do this and it seems to work in their toolkits

gcowe: our use of this is possibly historical but it's pretty fundamental

RESOLUTION: close ISSUE-66 as an advanced pattern, needs more examples

ISSUE-15 Null datatype pattern as used by ASN.1 and others

pauld: split second pattern as ISSUE-70

RESOLUTION: close ISSUE-15 accepeted empty sequence as a Basic pattern

ISSUE-10 Mapping Element and Type names

pauld: the issue of death

http://www.w3.org/2002/ws/databinding/6/9/19-databinding-minutes.html#item01

pauld: walks through the history

Yves: for Advanced this is a must and can be easily implemented, comments for original names etc

pauld: proposal for way forward: split issue into concrete patterns for name formats, python rules, includes '-', Kanji set, etc and process them as business as usual

<scribe> ACTION: pdowney to build several examples based upon existing document for ISSUE-10
[recorded in http://www.w3.org/2006/10/05-databinding-minutes.html#action104]

<trackbot> Created ACTION-69 - Build several examples based upon existing document for ISSUE-10 [on Paul Downey - due 2006-10-12].

ISSUE-55 simple abstract substitutionGroup pattern

JonC: leave it open, we need a concrete example / pattern

pauld: We're closing issues. Examples follow as editorial work

RESOLUTION: close ISSUE-55 as Advanced, needs example

ISSUE-38 xs:any processContents value of 'skip'

gcowe: we have examples and patterns for this

RESOLUTION: close ISSUE-38 as Advanced

ISSUE-50 is xs:anyType an Advanced pattern?

pauld: well duh, it's commonly used but badly supported

RESOLUTION: close ISSUE-50 as an Advanced pattern

ISSUE-25 Map and Hash Patterns

pauld: this issue is a placeholder. We need to process each of the the concrete patterns and examples from the input document. I suspect they're all Advanced.

<scribe> ACTION: pdowney to explode concrete patterns for ISSUE-25 hash and map
[recorded in http://www.w3.org/2006/10/05-databinding-minutes.html#action106]

<trackbot> Created ACTION-70 - Explode concrete patterns for ISSUE-25 hash and map [on Paul Downey - due 2006-10-12].

ISSUE-17 Advice for representing a duration

pauld: we don't offer advice on which pattern to use, apart from grouping patterns. Duration is an Advanced datatype, leave it at that.

pauld: so do we accept xs:duration is OK for representing durations?

there is an awkward silence

RESOLUTION: close ISSUE-17 with no action

ISSUE-54 Sequence of choice Pattern

RESOLUTION: close ISSUE-54 as an Advanced pattern

ISSUE-59 attributeGroup pattern

RESOLUTION: close ISSUE-59 as an Advanced pattern

ISSUE-14 xs:default handling

RESOLUTION: accept ISSUE-14 as an Advanced pattern

ISSUE-2 Test Suite

discussion of tetsuite process

pauld: each toolkit is assigned an Id {toolkit}_{lang}_{version}, e.g.:

pauld: a toolkit specific genit script:

pauld: the generic runit script:

pauld: People are welcome to pick this work up in the comfort of their own homes, though my Perl hacks might defeat some. Ideally the runit should be more shrink-wrapped - a jar and the sample soap files or as a Zip file, but that's work I've not got around to, yet

pauld: To get on the report all people have to do is contribute log files in the output.xml format, along with snippets.html

<Yves> ACTION: pdowney to publish logfile format
[recorded in http://www.w3.org/2006/10/05-databinding-minutes.html#action107]

<trackbot> Created ACTION-71 - Publish logfile format [on Paul Downey - due 2006-10-12].

pauld: we then use the log to generate a results.xml which checks the request versus response. This is where I got stuck.

pauld: Ajith suggested XMLUnit, which looks cool for the 95 case, but we still need hints for comparing floats etc

Yves: also useful if we have +1 test cases

pauld: I have an xslt to manufacture a Schematron schema from examples.xml which works well for comparing XPaths, e.g.

         <sch:assert 
	    test="xs:float(log:request/log:body/soap:Envelope/soap:Body/*/ex:floatElement) 
	= xs:float(log:response/log:body/soap:Envelope/soap:Body/*/ex:floatElement)">assertion 
	    "xs:float(ex:floatElement)" against FloatElement03 message 1 failed - mismatch
       <sch:assert>

pauld: but my XSLT isn't comparing full documents, only explicit XPaths. Just checking the response matches the request is our 95 case

Yves: XMLUnit looks interesting, especially the 'exact' then 'similar' match approach, I'd like to pick up this work

pauld: does a happy dance

pauld: that frees me up to work with George on generating my logs for Axis 1.x, XFire, gSOAP, etc, etc

ADJOURNED

Recap

pauld: ok, so we have 10 Issues remaining, 3 Basic, 2 Testsuite

pauld: Origo has contributed some patterns, BT has some industry schemas in mind, but other people need to contribute patterns for Advanced or it's going to be a short document!

Publication of Logs

<scribe> ACTION: ylafon to write introduction to the Test suite text including a Disclaimer and how to deal with mistakes
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action101]

<trackbot> Created ACTION-72 - Write introduction to the Test suite text including a Disclaimer and how to deal with mistakes [on Yves Lafon - due 2006-10-13].

pauld: we should publish our test suite logs and call for logs from third parties

Detection of Patterns

gcowe: patterns.xml covers components, but not combinations of components
... unclear if we need to do a second pass

pauld: so what happens if a schema contains a valid component in an unusual place (struggles for a realistic example)
... let's walk though this

<scribe> ACTION: pdowney to write a patterns and examples.xml to HTML transform
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action102]

<trackbot> Created ACTION-73 - Write a patterns and examples.xml to HTML transform [on Paul Downey - due 2006-10-13].

<JonC> ACTION: pdowney to remove editorial attribute from patterns.xml
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action103]

<trackbot> Created ACTION-74 - Remove editorial attribute from patterns.xml [on Paul Downey - due 2006-10-13].

pauld: we need a better rollup report of the patterns in our examples documents

<scribe> ACTION: pdowney to generate a rollup report for classification of our examples
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action104]

<trackbot> Created ACTION-75 - Generate a rollup report for classification of our examples [on Paul Downey - due 2006-10-13].

gcowe: when I run the processor on our schema catchall fires all the time

pauld: so what's broken?
... is it because catchalls are firing along with basic patterns, or the catchalls indicate we don't have enough patterns to cover your schemas?

gcowe: redefine is catchall, for example

pauld: let's gloablly replace 'catchall' with 'pending'

JonC: we need to document our buckets

gcowe: substitutionGroups fires as catchall

pauld: ok we need to ensure we have patterns.xml statements for all our closed issues
... we need to dog-food our processor on our examples
... two pass comes from our use of Schematron
... maybe we could write some code to taint nodes touched by an XPath, then look for untainted nodes

Yves: alternative approach is to traverse the XML bottom-up start at leaf nodes and try to recognise patterns for leaf nodes applying pattern detection for each new subtree

pauld: sounds interesting, but not sure I fully understand

pauld: does that mean writing our patterns in a different way, not XPath?

Yves: no

pauld: let a 1000 flowers bloom!

<scribe> ACTION: ylafon to investigate alternative approach to pattern detection
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action105]

<trackbot> Created ACTION-76 - Investigate alternative approach to pattern detection [on Yves Lafon - due 2006-10-13].

pauld: so are we happy with our approach, well two approaches?

<gcowe> two phase detection of patterns -

<gcowe> use schematron with multiple rules in first phase - as is

<gcowe> in second phase - use schematron with one rule containing paths detected from first phase, with a catchall for anything else

pauld: this approach doesn't tell you what is causing the failure, ok for our validation but for a W3C hosted validator we may need more work in error reporting

Introductory Text

Working Group indulges in wordsmithing by committee

<JonC> try this "Different databinding tools support different subsets of XML schema 1.0 and even their support of common aspects of XML Schema is often inconsistent, resulting in interoperability issues:"

pauld: and that's better than "Different databinding tools fail to consume different aspects of XML Schema 1.0 differently." ??

<Yves> Also, there may be multiplt ways of expressing the same data structures using XML schema, and databinding tools may choose to implement only one or more ways, but not all of them, leading also to interoperability issues

<JonC> I think so

<JonC> compromise "Different databinding tools support different aspects of XML Schema 1.0 differently."

<gcowe> or "Its fair to say that most databinding tools support XML Schema 1.0 features in inconsistent ways which leads to interoperability issues" - no differents at all!!

LUNCH

ISSUE-71 Relationship with WS-I Basic Profile

pauld: we'd like the BP to be able to cite us, and so we have restrictions such as encoding and schemaLocation to make sure that can happen.
... but do we need to do more in terms of our spec

Yves: may be IP issues in a normative reference

gcowe: we have to be compliant with WS-I Basic Profile for interoperability

pauld: for Web service tools at least, but we can be used in a wider context

gcowe: we talked about this yesterday under ISSUE-68

pauld: let's leave this for a telcon

Editorial Work

more spec bashing, added edtodos for work

Review of Issues and Patterns

pauld: we need to identify the issues which should have an acompanying pattern and example
... then we can join that against the issue numbers in examples.xml and patterns.xml

<JonC> The issue numbers requiring a pattern are:

<JonC> 5

<JonC> 7

<JonC> 8

<JonC> 9

<JonC> Change of plan these are the Issues NOT requiring a pattern ..

<JonC> To help George 1,2,3,4,11,12,13,16,17,18,24,28,29,30,34,35,36,37,40,52,53,61,62,63,71

<gcowe> thanks Jon!

<scribe> ACTION: gcowe to build a tool to check each Issue has a pattern and each pattern has an example
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action106]

<trackbot> Created ACTION-77 - Build a tool to check each Issue has a pattern and each pattern has an example [on George Cowe - due 2006-10-13].

Action Item Review

<scribe> ACTION: ylafon to work on XMLUnit check
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action107]

<trackbot> Created ACTION-78 - Work on XMLUnit check [on Yves Lafon - due 2006-10-13].

<scribe> ACTION: gcowe to build 2nd pass of Schematon pattern detection tool
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action108]

<trackbot> Created ACTION-79 - Build 2nd pass of Schematon pattern detection tool [on George Cowe - due 2006-10-13].

<scribe> ACTION: pdowney to review ISSUES list against edtodo list
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action109]

<trackbot> Created ACTION-80 - Review ISSUES list against edtodo list [on Paul Downey - due 2006-10-13].

Schedule

pauld: review of our roadmap document

pauld: OK we're well behind on the schedule ... we're making progress ... but there's a risk with such a small WG one of us has a change of circumstances. Also we may run out of time and fail charter renewal. Our best option seems to be to just keep truckin'. Publishing our test results may garner rocks or renewed interest.

pauld: Many thanks to the W3C for hosting, especially for the nice weather and good eating!

MEETING CLOSED

Summary of Action Items


[NEW]
ACTION: pdowney to build several examples based upon existing document for ISSUE-10
[recorded in http://www.w3.org/2006/10/05-databinding-minutes.html#action104]

[NEW]
ACTION: pdowney to explode concrete patterns for ISSUE-25 hash and map
[recorded in http://www.w3.org/2006/10/05-databinding-minutes.html#action106]

[NEW]
ACTION: pdowney to publish logfile format
[recorded in http://www.w3.org/2006/10/05-databinding-minutes.html#action107]

[NEW]
ACTION: pdowney to raise an issue on ISSUE-68 with the WS-I Basic Profile WG
[recorded in http://www.w3.org/2006/10/05-databinding-minutes.html#action102]

[NEW]
ACTION: ylafon to investigate IP and process about contribution of logs from third parties
[recorded in http://www.w3.org/2006/10/05-databinding-minutes.html#action101]

[NEW]
ACTION: gcowe to build 2nd pass of Schematon pattern detection tool
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action208]

[NEW]
ACTION: gcowe to build a tool to check each Issue has a pattern and each pattern has an example
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action206]

[NEW]
ACTION: pdowney to generate a rollup report for classification of our examples
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action204]

[NEW]
ACTION: pdowney to remove editorial attribute from patterns.xml
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action203]

[NEW]
ACTION: pdowney to review ISSUES list against edtodo list
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action209]

[NEW]
ACTION: pdowney to write a patterns and examples.xml to HTML transform
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action202]

[NEW]
ACTION: ylafon to investigate alternative approach to pattern detection
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action205]

[NEW]
ACTION: ylafon to work on XMLUnit check
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action207]

[NEW]
ACTION: ylafon to write introduction to the Test suite text including a Disclaimer and how to deal with mistakes
[recorded in http://www.w3.org/2006/10/06-databinding-minutes.html#action201]
 

[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.127 (CVS log)
$Date: 2006/10/18 09:25:39 $