OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] Extending type definitions using RelaxNG Compact

[ Lists Home | Date Index | Thread Index ]

Hi Kris,

> Unfortunately, the "FirstName = AlphaString" example doesn't work.
> Does anyone know a way of achieving what I'm trying to do? Is it
> even possible with RelaxNG?

RELAX NG doesn't support the construction of datatype hierarchies.
When you do:

  AlphaString = xsd:string {
      pattern = "[a-zA-Z]*"
  }

you are associating the name 'AlphaString' with a pattern that matches
strings made up of lower and uppercase ASCII letters. This isn't the
same as creating a new datatype called AlphaString.

In RELAX NG, datatypes come from a datatype library, and if you want
to create a new datatype, you have to create a new datatype library to
contain it. Currently that means coding it in your favourite
programming language, using the datatype library interface defined at
http://relaxng.sourceforge.net, registering that library with your
favourite RELAX NG validator and referring to it from your schema.

Alternatively, I was going to point you to ooRelaxNG at
http://www.asahi-net.or.jp/~eb2m-mrt/oo.html but I see that it doesn't
support simple type hierarchies (as XML Schema would call them). I
think that you could probably adapt the general principal -- create a
schema using a modified version of RELAX NG in which the datatype
hierarchy is made explicit, and then transform that schema into a
proper RELAX NG schema.

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS