Basic XMLSchema questions

Brett McLaughlin bmclaugh at algx.net
Wed Jan 5 19:38:52 GMT 2000


Alan Santos wrote:
> 
> Hi,
>  I'm trying to wrap my head around the XMLSchema drafts to determine their
> immediate usefulness (to myself), and have some very basic questions.
> 
> 1)  What is the difference between an archetype, type and datatype?
> When is one used in place of the other.

<archetype> is gone, replaced by <type>, which is used for specifying
non-"primitive" (i.e. predefined) types for elements.

<datatype> is for doing the same sort of operation on attributes.

for example:

<element name="myElement">
  <type>
    <element name="nestedElement" type="string" />
    <element name="anotherNestedElement" type="string" />
    <attribute name="isPrimary">
      <datatype content="empty" />
    </attribute>
    <attribute name="focus">
      <datatype content="NMTOKENS">
        <enumeration value="Java" />
        <enumeration value="C" />
        <enumeration value="XML" />
      </datatype>
    </attribute>
  </type>
</element>

> 
> 2) Is multiple inheritance not supported for derived types?

Personal Opinion: Stay away from using inheritance - it is changing like
mad, and is not a great solution for XML inheritance, anyway (IMHO).  We
are working on a proposal for this over at Apache XML, but it is not
ready for primetime yet.

> 
> 2a) How is inheritance supported? Is it possible to access the elements of a
> types source without manually doing the traversal, or is inheritance only
> useful in the instance document?

See #2

> 
> 3) Is it possible to use the schema for application specific requirements.
>   For example, I'm basing my schema on a Java class model and would like to
> specify the Java class name in the schema.  The only way I can see is to
> wrap it in an <annotation/>.

Your schema is one-to-one with a Java class?  This wouldn't be a good
idea, unless I'm misunderstanding your intent.  Maybe your _XML_ is
based on a class, and it specifies the class, but then multiple XML docs
(therefore multiple classes) all use the same Schema.

> 
> 3a) Likewise, certain <elements> may actually refer to another type, so I
> want to do something like:
> <element name="thePrice" type="reference" referentType="Price">
> 
> I know I can say something like:
> 
>  <element name="thePrice" type="PriceReference">
> 
> but that isn't really flexible enough.

Why not?  What's the difference in your mind?  If you can define an
infinite number of types, and define an infinite number of elements with
any defined type, how is that not flexible?

> 
> Perhaps type can hold a ref of some sort, tho....
> 
> Maybe I would just be better off with another XML instance document
> describing the class model?

Sounds like it.  Schemas are not ready to replace XML documents.  Don't
try it...

-Brett

> 
> thanks,
> alan
> 
> xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
> Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
> To unsubscribe, mailto:majordomo at ic.ac.uk the following message;
> unsubscribe xml-dev
> To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
> subscribe xml-dev-digest
> List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To unsubscribe, mailto:majordomo at ic.ac.uk the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)





More information about the Xml-dev mailing list