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

On Feb 4, 2013, at 11:26 PM, Luc Moreau <L.Moreau@ecs.soton.ac.uk> wrote:

> Hi
> 
> My 2p contribution to the debate. I think this makes the schema much less readable.
> What does it give us? We have structured core/links/dictionary in different files. It's nice, but the benefits do not outweigh the drawbacks.

What drawbacks are you specifically referring to?  I think the modularity is clear to users and easy to maintain.

> 
> Furthermore, i haven't had the time to see the effect of this schema on tools such as jaxb and ORMs. I fear non natural mappings will result. Has anybody got experience?

I ran the JAXB commandline tool xjc on prov.xsd and it was able to follow the dependencies and generate java classes for types defined in prov-core.xsd, prov-dictionary.xsd, and prov-links.xsd.  I am not very well versed in JAXB annotations but the mappings look fine to me.

Do you have more concrete fears about how the schema organization will trip up ORM tools?

Note - I had to make a modification to the prov:Bundle and Document complexTypes to get xjc to successfully parse the schema.  I will look into this issue and try to resolve it later today.  The two issues seem unrelated to the schema organization.

--Stephan

> 
> I would be in favour of a single file containing all the terms of the prov namespace (from an XML perspective).
> 
> Professor Luc Moreau
> Electronics and Computer Science
> University of Southampton
> Southampton SO17 1BJ
> United Kingdom
> 
> On 5 Feb 2013, at 00:32, "Stephan Zednik" <zednis@rpi.edu<mailto:zednis@rpi.edu>> wrote:
> 
> 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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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 08:40:55 UTC