- From: Ayalew Kassahun <A.Kassahun@InfoRay.NL>
- Date: Wed, 31 Jan 2001 10:39:10 +0100
- To: xmlschema-dev@w3.org
- Cc: Michael Anderson <michael@research.canon.com.au>
Hi List, Mick,
None of the three scenarios are answer to my question. My question is that I
want to specify in the schema that the allowed simple times (not only for
age but for all simple types in my docs) are xsd:int, xsd:string or
xsd:data. If there is anything which is of a simpleType then it must be one
of the above three types.
I was think of in this lines:
In my schema ...
<xsd:simpleType name="mySimpleType">
<xsd:simpleType>
<xsd:union memberTypes="xsd:short xsd:integer xsd:double"/>
</xsd:simpleType>
</xsd:simpleType>
then I want to use mySimpleType for whatever simple type ...
In my docs, for example:
<!-- age is a mySimpleType, it can be given as int, double or as string -->
<xsd:element name="age">
<myNS:mySimpleType>
</xsd:simpleType>
</xsd:element>
<!-- weight is a mySimpleType, it can only be a double -->
<xsd:element name="weight">
<myNS:mySimpleType>
<xsd:restriction base="xsd:double"/>
</xsd:simpleType>
</xsd:element>
I am not sure if simpleType itself can be redefined with some restriction.
Can somebody tell me the right way of doing this.
<!-- etc etc -->
Ayalew
>
> Ayalew Kassahun wrote:
>
> > Hi List:
> >
> > I have (what seams to me) a simple question but I
> difficulty expressing it
> > in my schema. I want to constraint users of my schema to
> use only a subset
> > of the simpleTypes: xsd:int, xsd:double and xsd:string. How
> can I specify
> > that in my schema?
> >
> > For example in the following document I want the element <age
> > type="xsd:short">23</age> be reported as 'invalid' because
> its content is of
> > type short.
> >
> > <?xml version="1.0"?>
> > <purchaseOrder orderDate="1999-10-20">
> > <shipTo country="US">
> > <name>Alice Smith</name>
> > <age type="xsd:short">23</age>
> > <city>Mill Valley</city>
> > <state>CA</state>
> > <zip>90952</zip>
> > </shipTo>
> > <billTo country="US">
> > <name>Robert Smith</name>
> > <street>8 Oak Avenue</street>
> > <city>Old Town</city>
> > <state>PA</state>
> > <zip>95819</zip>
> > </billTo>
> > </purchaseOrder>
> >
> > any suggestion is welcome.
> >
> > regards
> > Ayalew
>
> I'm not exactly sure what you want to do, so here are three solutions.
> 1. If you want age to _only_ be a short and you want to
> specify this in the
> instance, then you can use the following for the instance:
> <purchaceOrder orderDate = "1999-10-20"
>
> xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
>
> xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
> <snip/>
> <age xsi:type="xsd:short">23</age>
> <snip/>
>
> 2. If you want age to _only_be a short and you want to
> specify this in the
> schema, then you can use the following in the schema:
> <xsd:element name="age" type="xsd:short"/>
> where xsd is defined as in case 1.
> Now your instance will be valid with <age>23</age> but
> invalid with <age>hello
> world</age>
>
> 3. If you want age to be a short OR integer OR double, then
> in your schema you
> use a union
> <xsd:element name="age">
> <xsd:simpleType>
> <xsd:union memberTypes="xsd:short xsd:integer xsd:double"/>
> </xsd:simpleType>
> </xsd:element>
> Now your instance will be valid with <age>23</age> AND
> <age>23.4</age> but
> invalid with <age>hello world</age>
>
> For a better explanation than mine, see the primer [1]
>
> mick.
>
> [1] http://www.w3.org/TR/xmlschema-0/#CreatDt
>
>
>
>
Received on Wednesday, 31 January 2001 04:26:38 UTC