Re: Multiple XML schema files for a common target namespace (PROV-ISSUE-608)

This is a reminder to the workgroup that this issue has not been resolved by the group.  The PROV-XML team has implemented a solution based on the "substitution groups and abstract elements" pattern as elaborated by Stian at http://www.w3.org/2011/prov/wiki/ProvXMLNamespaces#Substitution_groups_and_abstract_elements.

The prov-dictionary and prov-links schemas have been updated to reflect the current strategy

https://dvcs.w3.org/hg/prov/file/tip/xml/schema/extensions/prov-dictionary.xsd
https://dvcs.w3.org/hg/prov/file/tip/xml/schema/extensions/prov-links.xsd

Both extension schemas include the prov-core schema and use substitutionGroup to extend the prov:abstractElement abstract element.

prov.xsd includes the core schema and all extension schemas.

The schemaLocation attribute can be used to specify a specific schema if a user does not wish to use the prov.xsd schema which references all extension schemas the WG is developing.  I will add a section on the schema organization and how to specify alternate schemas to the editors draft of the note on Tuesday.

Thoughts?  If there are no immediate questions I would like to move this to a straw poll to resolve the issue.

--Stephan

On Jan 23, 2013, at 1:20 PM, Stephan Zednik <zednis@rpi.edu> wrote:

> I have committed a refactoring of the prov-xml schemas following the "substitution groups and abstract elements" pattern described by Stian in http://www.w3.org/2011/prov/wiki/ProvXMLNamespaces#Substitution_groups_and_abstract_elements
> 
> All schemas utilize the http://www.w3.org/ns/prov# target namespace.
> 
> I ask the group to please review the XML Namespace wiki page Stian created (link above) and our implementation of the "substitution groups and abstract elements" pattern.
> 
> changeset:
> https://dvcs.w3.org/hg/prov/rev/ddc3e7cd2e94
> 
> The dependency hierarchy of the PROV-XML generated schemas is now:
> 
> prov.xsd
> - prov-core.xsd
> - extensions/prov-dictionary.xsd
> -- prov-core.xsd
> - extensions/prov-links.xsd
> -- prov-core.xsd
> 
> note - prov.xsd does not technically need to include prov-core.xsd since both of the extensions already include it, but I added the include so the existence of prov-core.xsd is clear in prov.xsd.
> 
> The content of the extension schemas should not be considered final.  I invite members of the links and dictionary note to review the extension schemas and provide feedback.
> 
> All current XML serialization examples in eg-40 validate successfully with the refactored schema layout.  The PROV-XML group will be adding additional tests today for the extensions.
> 
> --Stephan
> 
> On Jan 17, 2013, at 10:12 AM, Stephan Zednik <zednis@rpi.edu> wrote:
> 
>> Hi Stian,
>> 
>> The PROV-XML group will look into a solution that follows this pattern.
>> 
>> --Stephan
>> 
>> On Dec 6, 2012, at 9:54 AM, Stian Soiland-Reyes <soiland-reyes@cs.manchester.ac.uk> wrote:
>> 
>>> I've added some code example of my proposed solution at
>>> 
>>> http://dvcs.w3.org/hg/prov/file/6113b10ac714/xml/experimental/extensions
>>> 
>>> See description of this folder here:
>>> 
>>> http://www.w3.org/2011/prov/wiki/ProvXMLNamespaces#Experimental_example
>>> 
>>> On Thu, Dec 6, 2012 at 4:20 PM, Stian Soiland-Reyes
>>> <soiland-reyes@cs.manchester.ac.uk> wrote:
>>>> I've tested and found it to be easy to do several schemas in the same
>>>> namespace as long as they just <xsi:include> each-other.
>>>> 
>>>> 
>>>> So you can have an hierarchy of imports like:
>>>> 
>>>> prov.xsd
>>>> -- imports core.xsd
>>>> -- imports collection.xsd
>>>> ---- imports core.xsd
>>>> -- imports links.xsd
>>>> ---- imports core.xsd
>>>> 
>>>> and so the top-level prov.xsd simply includes 2-3 <xsd:imports> of the
>>>> underlying components.
>>>> 
>>>> 
>>>> As far as I could figure it out, it means in the extensions the
>>>> easiest way to 'fit in' would be to use abstract elements and
>>>> substitution groups.
>>>> 
>>>> See   http://www.w3.org/2011/prov/wiki/ProvXMLNamespaces for a
>>>> discussion of the different alternatives.
>>>> 
>>>> I've also got some test-schemas with this working, but I have not
>>>> committed them yet as they are on a different machine.
>>>> 
>>>> 
>>>> On Fri, Nov 30, 2012 at 3:34 PM, Stian Soiland-Reyes
>>>> <soiland-reyes@cs.manchester.ac.uk> wrote:
>>>>> Tracker, this is PROV-ISSUE-608
>>>>> 
>>>>> On Fri, Nov 30, 2012 at 3:29 PM, Stian Soiland-Reyes
>>>>> <soiland-reyes@cs.manchester.ac.uk> wrote:
>>>>>> They are usually application/xml.
>>>>>> 
>>>>>> On Thu, Nov 29, 2012 at 6:22 PM, Timothy Lebo <lebot@rpi.edu> wrote:
>>>>>>> prov-wg,
>>>>>>> 
>>>>>>> Is there a mime type for xml schema?
>>>>>>> Or, should we just use "application/xml"?
>>>>>>> 
>>>>>>> I'd like to add it to http://www.w3.org/2011/prov/wiki/ProvNamespaceManagement#Intro
>>>>>>> 
>>>>>>> Thanks,
>>>>>>> Tim
>>>>>>> 
>>>>>>> 
>>>>>>> On Nov 29, 2012, at 12:58 PM, Graham Klyne <GK@ninebynine.org> wrote:
>>>>>>> 
>>>>>>>> Following the teleconference, I did a little digging, and my understanding is that it *is* possible to have a schema for a common target namerspace build from a number of separate schema files:
>>>>>>>> 
>>>>>>>> http://www.w3.org/TR/xmlschema-1/#compound-schema
>>>>>>>> 
>>>>>>>> By my reading, what you *cannot* do is have a single schema composed from multiple "sub-schema" defining terms in different target namespaces.
>>>>>>>> 
>>>>>>>> #g
>>>>>>>> --
>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> Stian Soiland-Reyes, myGrid team
>>>>>> School of Computer Science
>>>>>> The University of Manchester
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> Stian Soiland-Reyes, myGrid team
>>>>> School of Computer Science
>>>>> The University of Manchester
>>>> 
>>>> 
>>>> 
>>>> --
>>>> Stian Soiland-Reyes, myGrid team
>>>> School of Computer Science
>>>> The University of Manchester
>>> 
>>> 
>>> 
>>> -- 
>>> Stian Soiland-Reyes, myGrid team
>>> School of Computer Science
>>> The University of Manchester
>>> 
>>> 
>> 
>> 
>> 
> 

Received on Tuesday, 5 February 2013 00:31:48 UTC