XML Schema Patterns for Databinding WG F2F

31st July - 1st August 2006

BT Westside, Hertfordshire, England, UK



Jon Calladine (BT)
George Cowe (Origo)
Paul Downey (BT)
Otu Ekanem (BT)
Yves Lafon (W3C)
Ajith Ranabahu (WSO2)
Priscilla Walmsley (W3C Invited Expert)
Scott Wood (NACS)



minutes for 2006-07-25, 2006-07-18 and 2006-07-04 teleconferences approved

How We Work

discussion of how to generate specs from examples.xml and patterns.xml

simplification step is to ensure for each pattern xml:id there is a corresponding example xml:id

text kept in another explanations.xml documment in which explanations may be picked out by the pattern xml:id or a group xml:id.

patterns.xml will include an optional groupId attribute, e.g. "predefinedTypes"

boilerplate introduction, references etc to be put in the XSLT which generates the spec from patterns.xml, examples.xml and description.xml

need not(@targetNamespace)

examples in examples.xml which don't currently match patterns.xml ids, eg "Beatle" should review and fix

gcowe: when detecting patterns in a schema, not always clear where the patterns are being used. issuing the element or complex type name would be useful

pauld: is this something we need to deliver? sounds like a very nice feature.

gcowe: will investigate


paul demonstrates our workflow, patterns, schematron, examples, running SOAP4r toolkit:


yves: fine-grained patterns may not flush out all the issues

pauld: we could build a complete basic.xsd with a complete instance document for CR


Working group breaks out: Paul, George and Jon write patterns and examples; Yves writes the xmlspec generation; Paul and Otu work on test harness for toolkits.

ISSUE-24: Multi-dimensional arrays

jonc: very common pattern

pauld: agrees, but isn't this just two collections composed?
... we have to write XPaths to follow the type=".." value, possibly jumping namespaces, a problem we haven't solved

jonc: examples should include this pattern, if toolkits fail we can split it into a special case

pauld: cool .. but ..
... we decided yesterday to make example ids match pattern ids, let's add an optional @pattern to examples for this case

RESOLUTION: close ISSUE-24 with no action, covered by other patterns

ISSUE-43: ref and type qname values

pauld: we've had enough pain with this to *know* it's advanced

working group authors example ElementTypeDefaultNamespace with pattern not(contains(//xs:element/@type, ':'))

RESOLUTION: close ISSUE-43 as an advanced pattern

Basic and Advanced Patterns detection

pauld: we seem to need to be able to detect advanced patterns to ensure a schema is really basic
... is this an issue?

it's not a problem with the tool, but what about our specs?

yves: are we confident this subset isn't too small?

pauld: slightly different problem, but we are submitting patterns important to us for basic which we know to work well
... advanced is where we do more work to see what is in common use
... BT would like to use vertical schemas in Web services, but looking to advanced to help that. Basic is a constrained vocabulary of useful stuff for authors working with today's tools.
... I think we're mostly there.

discussion .. issue is that the spec doesn't currently describe behaviour around missing targetNamespace, elementFormDefault, ':' in @types etc

we need MUST text in Basic document to flag these patterns are required. will flag such patterns as "editorial" and check we have text by hand

ISSUE-23: Mixed Content

Aspirational and in common use, but known not to work now.

RESOLUTION: closed ISSUE-23 as an advanced pattern

ISSUE-56: string with min/max length facets

working group builds examples and xpaths

ISSUE-37: more than one way to express null, empty or missing content

pauld: like to close this issue as there is no obvious concensus to be had. Let's just publish the patterns and not tell people how to think about them.

jonc: having spent a lot of time thinking about this and trying to push it forward, I have to reluctantly agree

RESOLUTION: close ISSUE-37 with no action

ISSUE-14: xs:default

no objections to moving this to "advanced"

won't close this as it may yet not be accepted

ISSUE-17: durations

no objections to moving this to "advanced"

again, won't close this as it may yet not be accepted

ISSUE-5: Open enumeration type

union is rejected by a number of tools, moved to "advanced"

RESOLUTION: close ISSUE-5 accepted as an advanced pattern

ISSUE-18: Schema Authoring Styles

this issue is too generalised. People should submit concrete patterns to be included in the spec. No russian doll, etc patterns have been submitted for basic.

RESOLUTION: close ISSUE-18 with no action

ISSUE-4: Collection of Databinding Impementations

pauld: this is just business as usual, we'll list the tools we test against in our report, work being collected here: http://www.w3.org/2002/ws/databinding/edcopy/toolkits/

RESOLUTION: close ISSUE-4 with no action, business as usual

ISSUE-8: constraining numerical types with patterns

jonc: goes into what does a good experience mean
... expect tools to generate code, but not validate against schema in many cases

pauld: not sure tools will generate code, even
... what about a pattern which says 0000001

jonc: depends upon the constraints we put into our examples

pauld: think we need some experience here

jonc: Design Consideration?

pauld: that's what MSMQ suggested in Nice
... is anyone pushing to have this "Basic"?

gcowe: we use a postcode pattern, we don't expect tools to bail

pauld: seen an email pattern, scary
... still lost
... problem is validation
... is it good enough for a tool to ignore the pattern?
... propose we close this issue as Basic (subject to discovering tools which reject such schemas) and add a Design Consideration to highlight that tools are unlikely to validate received content or be constrained on lexical representations they output

RESOLUTION: close ISSUE-8 with pauld's proposal

ISSUE-9: Support for xs:union

pauld: most tools barf at the generation stage
... do we have patterns and examples for xs:union?

working group watches pauld painfully edit "AlternateElement" example for xs:union

RESOLUTION: close ISSUE-9 as an advanced pattern

ISSUE-13: PSVI features

pauld: see this as an interesting lead towards difficult patterns
... we have xs:default as a separate issue, other concrete patterns can be captured similarly as separate ISSUES

RESOLUTION: close ISSUE-13 with no action

ISSUE-29: what to do with what to do with uncommon data structures in programming languages

pauld: I think issues of how programming languages implement bindings, or represent data structures peculiar to a particular environment is out of scope

RESOLUTION: close ISSUE-29 with no action

ISSUE-33: xs:choice a Basic Pattern?

pauld: seems like Axis 1.3 bounces it but 1.4 creates same class as for a sequence, this seems ok to me

jonc: worries me, but not sure what more they can do in Java

gcowe: what about a choice with different types?

pauld: add it as an example, not sure it's a different pattern
... same type seems like the special case

RESOLUTION: close ISSUE-33 as an advanced pattern

ISSUE-30: more distinct list of data structures

gcowe: related to ISSUE-25?

yves: always an issue for meta-data

pauld: propose we accept requests to add specific data structures rather than actively go out to harvest more.

RESOLUTION: close ISSUE-30 with no action

ISSUE-11: Use case submissions to the test suite

jonc: process issue which has been overtaken by events

RESOLUTION: close ISSUE-11 with no action

ISSUE-10: Mapping Element and Type names

pauld: http://www.w3.org/2002/ws/databinding/edcopy/testsuite/documents/names/names.xsd
... need to incorporate this into our tests

<scribe> ACTION: pdowney to incorporate names tests into our matrix report [recorded in http://www.w3.org/2006/08/01-databinding-minutes.html#action01]

<trackbot> Created ACTION-54 - Incorporate names tests into our matrix report [on Paul Downey - due 2006-08-08].

ISSUE-19: advice against 'all'

jonc: our experiences using 'all' with tools hasn't been good

pauld: advice in the issue is against writing invalid schemas, out of scope
... do we punt this to "advanced" or go the extra mile testing with tools?
... does anyone care enough about all for basic patterns?

gcowe: we don't use it

pauld: we're avoiding it

RESOLUTION: close ISSUE-19 with 'all' as an advanced pattern

pauld: expect comments on that!

ISSUE-57: xs:include

pauld: need a pattern and an example

ISSUE-51: attribute and element name clashes

pauld: looks very much like an advanced pattern to me
... detecting with XPath simple, except when anyAttibute, or exteded types come into play

RESOLUTION: close ISSUE-51 as an advanced pattern

ISSUE-52: stable URIs for patterns

pauld: we have http://www.w3.org/2002/ws/databinding/patterns/6/05/DurationGlobalElement http://www.w3.org/2002/ws/databinding/examples/6/05/DurationGlobalElement etc

RESOLUTION: close ISSUE-51 with WG based URIs

ISSUE-63: is the order of a repeated element significant?

discussion, WG looks at the schema spec, then XML 1.0 spec.

pauld: this is just XML, order of elements is significant, do we need to clarify?

RESOLUTION: close ISSUE-63 with no action

ISSUE-22: Bare Vectors

pauld: has anyone seen problems with this in tools

jonc: we had issues in the past

pauld: in the days of encoding ..

jonc: more a style thing now

RESOLUTION: close ISSUE-22 as a Basic pattern

ISSUE-28: what to do if the programming language does not fully support a data structure

pauld: this is Vladislav accurately predicting our rat-holes
... canonical example is xs:Integer which in .NET is a C# String type
... or xs:choice in Java appearing as a class with all the properties available
... which i think is better than presenting DOM
... 'better' being a loaded word

jonc: if we just look at the wire, we don't care
... sufficient that the toolkit can consume WSDL

pauld: doesn't barf and allows a programmer to access and send the data seems good enough

jonc: that yardstick helps us make progress, +1

pauld: we use, but don't define the term "better user experience of tools"
.. and that's OK

RESOLUTION: close ISSUE-28 with no action

ISSUE-31: fixed value attributes

we need more examples

ISSUE-35: Design Considerations as Warnings

pauld: can XPath capture all our design considerations, eg. naming of elements and types?
... do we need to provide tooling to capture things which go beyond "patterns"
... do we need to close this issue to make progress?

jonc: what design considerations do we have?

pauld: we have naming of types, that seems to be it

moved issue to testsuite deliverable

ISSUE-36: Tool selection for testing of basic pattern assertions

pauld: we use what tools are important and available to WG members, and are providing a framework so others can submit test reports

RESOLUTION: close ISSUE-36 with no action

ISSUE-41: annotation and documentation elements as basic patterns

RESOLUTION: close ISSUE-41 as a basic pattern

ISSUE-21: Inheritance of Collections

<scribe> ACTION: pdowney to submit concrete pattern for ISSUE-21 [recorded in http://www.w3.org/2006/08/01-databinding-minutes.html#action02]

<trackbot> Created ACTION-55 - Submit concrete pattern for ISSUE-21 [on Paul Downey - due 2006-08-08].

ISSUE-67: using xsi:type to assert Type Substitution

pauld: personal adversion to xsi:type, it ain't XML :-)

gcowe: will build testcases

ISSUE-49: is anySimpleType a Basic Patterns type?

pauld: spoke to Priscilla about this, she may have new (well old) information.
... in the meantime some kits barf

moved to Advanced


chair: want to move to Last Call working draft ASAP.

we need time to incorporate patterns, build examples and test them off

<scribe> ACTION: ylafon to book 2 hour slot for 8th August telcon [recorded in http://www.w3.org/2006/08/01-databinding-minutes.html#action03]

<trackbot> Created ACTION-56 - Book 2 hour slot for 8th August telcon [on Yves Lafon - due 2006-08-08].

pauld: want to organise an interoperability event, ideally East Coast USA, end of November. Failing that in January. Boston in January. Brrr!

<scribe> ACTION: ylafon to talk with the team about hosting an interoperability event [recorded in http://www.w3.org/2006/08/01-databinding-minutes.html#action04]

<trackbot> Created ACTION-57 - Talk with the team about hosting an interoperability event [on Yves Lafon - due 2006-08-08].

suggestion next F2F in Edinburgh, last week September


Summary of Action Items

[NEW] ACTION: pdowney to incorporate names tests into our matrix report [recorded in http://www.w3.org/2006/08/01-databinding-minutes.html#action01]
[NEW] ACTION: pdowney to submit concrete pattern for ISSUE-21 [recorded in http://www.w3.org/2006/08/01-databinding-minutes.html#action02]
[NEW] ACTION: ylafon to book 2 hour slot for 8th August telcon [recorded in http://www.w3.org/2006/08/01-databinding-minutes.html#action03]
[NEW] ACTION: ylafon to talk with the team about hosting an interoperability event [recorded in http://www.w3.org/2006/08/01-databinding-minutes.html#action04]
[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.127 (CVS log)
$Date: 2006/08/01 18:33:29 $