[Esip-discovery] Datacasting custom elements proposal
Bob Deen
Bob.Deen at jpl.nasa.gov
Tue Mar 29 17:12:32 EDT 2011
>> The important point here is that the standard we're conforming to is
>> specified in the *schema* - i.e. it applies to all instances of this
>> element being used, just like the name or data type - rather than
>> something that's put in the actual XML document being described.
>
> Yep that's one way to do it. You could also put the above inline in the XML document itself. Check out that link I sent you on inlining schema in XML document instances:
>
> http://msdn.microsoft.com/en-us/library/aa302288.aspx
I saw that before but tuned out as soon as I saw "Few other XML Schema
implementations besides those by Microsoft actually do support inline
schemas." ;-)
But this is a side point, it's still a schema regardless of where you
put it.
>> What confuses me about this is that it seems like the contents of
>> appInfo are not defined - any well-formed XML is okay. So can you
>> impose a schema on the schema, that would define what the m-a-m items in
>> appInfo are, so the schema itself could validate? Or is appInfo simply
>> not validateable?
>
> You could also use e.g., an xsd:annotation too. But you'd also reference the dc: namespace in your XML schema which would reference back to the definition for conforms-to-standard.
xsd:appInfo has to go inside xsd:annotation as far as I can tell.
How do you go about telling the validator (validating the schema itself)
that e.g. dc:conforms-to-standard can appear only in the xsd:appInfo
element and not somewhere else? Something has to glue the two
namespaces together. That's what I'm not getting.
>> Also, pardon my schema ignorance. But if you have a well-defined
>> schema, say for datacasting, can that be augmented via additional
>> schemas (namespaces?) *without* changing the datacasting schema itself
>> and still be validateable? (which is really the same as the question
>> above, about having a schema just for the additions to the schema's
>> schema (did I really just write that sentence??))
>
> LOL. I think James G's answer is what I would say too -- it's possible to do, especially with inline schemas, and with the ability to override definitions.
My understanding of James' answer was that it was a way to specify that
arbitrary XML could go in the document itself. I'm trying to add things
to the schema language here, to extend the actual schema document.
Also, maybe I should qualify "validateable" by saying that I mean not
just that it's well-formed XML but that the contents can be checked. I
mean, xsd:appInfo allows arbitrary XML, and by that token any schema
using it that is well formed could be valididated, technically. But
that's not a real validation. A true validation ensures that the
document follows the rules... in this case, that the schema extensions
in appInfo follow the specifications we set up. If someone misspells
it, e.g. "dc:conforms-2-standard" then that should be flagged by a
validator.
>> Put another way, are schemas subclassable in an object-oriented sense?
>> The goal is for the above to still be a valid a, with additions
>> specified by b, without modifying or duplicating a's schema, yet still
>> be fully validateable.
>
> Yep, they are able to do that. The guru I know for XML schemas is Paul Ramirez on the PDS Engineering Node. He's been doing most of the design implementation of stuff like this at JPL. I've been trying to get him to join the discussion...if anyone else knows Paul, help me encourage him :)
Can you find an example?
What I'm trying to do here is to poke at the schema definition to see if
it can actually accommodate the metadata descriptions (m-a-m) we're
envisioning here. If not, then we can discard schemas as an option. If
it's possible but difficult, that's good to know. It's also good to
know if it's easy.
So what I'm getting at is twofold:
1) can the schema language support additional m-a-m items (like
conforms-to-standard) in the schema itself that can themselves be
validated? So that we can ensure the schema itself is valid? (this
goes to the schema that describes the schema.)
2) can a data provider extend the datacasting (e.g.) schema to add
his/her own custom metadata elements, without having to redefine the
base schema? i.e. as an augmentation or "subclass"?
If either answer is no, then I don't think the schema language will work
for this application. If both answers are yes, then examples would be
useful to help us decide if it's really the right way to go.
I'm all for standards here. Even though I have some vested interest in
the datacasting model, if using the schema language really is the
"proper" thing to do, then we should do it. But we have to ensure that
it will actually work, and truly is the "proper" thing.
Thanks...
-Bob
More information about the Esip-discovery
mailing list