- From: Eric van der Vlist <vdv@dyomedea.com>
- Date: Mon, 25 Jun 2001 09:31:38 +0200
- To: Geoff Elgey <elgey@dstc.qut.edu.au>
- Cc: xmlschema-dev@w3.org
Geoff Elgey wrote: > > G'day, > > [I've been looking through the archive and published standards but I > didn't find anything on this topic. Apologies if this has been > discussed before or is an a FAQ] > > I'm playing around with an ASN.1 to XML Schema translator, and most of > the translations seem okay, except for the following: > > a) Aliasing a global type > > ASN.1 defines an INTEGER type, and I'd like to use a type called > "INTEGER" rather than blindly substituting the equivalent XML Schema > type "integer". That is, define a type called "INTEGER" that aliases the > "integer" type. > > The best I could come up with was: > > <simpleType name="INTEGER"> > <restriction base="integer"/> > </simpleType> What's wrong with the above? IMHO, it's exactly doing what you want to achieve. I just find confusion prone the fact to rely on upper/lower cases to distinguish between your INTEGER and W3C XML Schema's interger and I would personaly use a different namespace. > Is there a simply method of defining type aliases? > > b) Repetition of <all> > > In ASN.1 we can define a SET type, such as : > > T1 ::= SET { x INTEGER, y BOOLEAN } > > where a SET is a type whose elements can come in any order. > > So looking at the XML Schema documentation, I can define this as > follows: > > <complexType name="T1"> > <all> > <element name="x" type="integer"/> > <element name="y" type="boolean"/> > </all> > </complexType> > > There are also list types in ASN.1, such as the following: > > T2 ::= SEQUENCE OF T1 > > This declares T2 to be a list of T1, and so a possible XML Schema for T2 > is: > > <complexType> > <sequence minOccurs="0" maxOccurs="unbounded"> > <element name="T1" type="T1"/> > </sequence> > >/complexType> > > However, it is also possible in ASN.1 to have a list of anonymous SET, > such as: > > T3 ::= SEQUENCE OF SET { a INTEGER, b BOOLEAN } > > But it appears that neither of the following types are legal in XML > Schema: > > <complexType> > <all minOccurs="0" maxOccurs="unbounded"> > <element name="a" type="integer"/> > <element name="b" type="boolean"/> > </all> > </complexType> > > ==> illegal because <all> can only have min & max of 0 or 1 > > <complexType> > <sequence minOccurs="0" maxOccurs="unbounded"> > <all> > <element name="a" type="integer"/> > <element name="b" type="boolean"/> > </all> > </sequence> > </complexType> > > ==> illegal as <all> cannot be nested within <sequence> > > Is there any way to specify in XML Schema that a collection of elements > that can appear in any order, and that each such collection can occur > multiple times? Yes, the workaround for this is: <complexType> <choice minOccurs="0" maxOccurs="unbounded"> <element name="a" type="integer"/> <element name="b" type="boolean"/> </choice> </complexType> Hope this helps. Eric > Any help greatly appreciated. > > Cheers, > Geoff > -- > Geoffrey Elgey ph: +61-7-38641487 Distributed Systems Technology > Centre > Security Unit fax:+61-7-38641282 QUT, Brisbane, Australia > http://www.dstc.edu.au > DSTC is the Australian W3C Office email: elgey@dstc.edu.au -- Pour y voir plus clair dans la nebuleuse XML... http://dyomedea.com/formation/ ------------------------------------------------------------------------ Eric van der Vlist http://xmlfr.org http://dyomedea.com http://xsltunit.org http://4xt.org http://examplotron.org ------------------------------------------------------------------------
Received on Monday, 25 June 2001 03:31:51 UTC