- From: <Simon.Cox@csiro.au>
- Date: Wed, 16 Oct 2002 16:36:28 +0800
- To: xmlschema-dev@w3.org
I want to build codelists in a uniform way, and have the authority for the
code list available in the PSVI. Here's a schema with some commentary:
=======================
<schema targetNamespace="http://xmml.ned.dem.csiro.au/my"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:my="http://xmml.ned.dem.csiro.au/my" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<!-- ==================================================================
-->
<!--
Start with a simple definition of "CodeType", being a string with a
"codeSpace" attribute,
and an element of this type
-->
<complexType name="CodeType">
<simpleContent>
<extension base="string">
<attribute name="codeSpace" type="anyURI" use="optional"/>
</extension>
</simpleContent>
</complexType>
<!-- ==================================================================
-->
<element name="name" type="my:CodeType"/>
<!--
Then generate specific codelists by restricting the value of the string to
enumerations, and fix the value of the codeSpace:
-->
<complexType name="ISOCountry2CharType">
<simpleContent>
<restriction base="my:CodeType">
<enumeration value="AF"/>
<enumeration value="AL"/>
<enumeration value="AU"/>
<enumeration value="ZW"/>
<attribute name="codeSpace"
fixed="http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-li
sts/list-en1-semic.txt" use="optional"/>
</restriction>
</simpleContent>
</complexType>
<!-- ==================================================================
-->
<complexType name="ISOCountry3CharType">
<simpleContent>
<restriction base="my:CodeType">
<enumeration value="AFG"/>
<enumeration value="ALB"/>
<enumeration value="AUS"/>
<enumeration value="ZWE"/>
<attribute name="codeSpace"
fixed="http://unstats.un.org/unsd/methods/m49/m49alpha.htm" use="optional"/>
</restriction>
</simpleContent>
</complexType>
<!-- ==================================================================
-->
<complexType name="UNCountryType">
<simpleContent>
<restriction base="my:CodeType">
<enumeration value="Afghanistan"/>
<enumeration value="Albania"/>
<enumeration value="Australia"/>
<enumeration value="Zimbabwe"/>
<attribute name="codeSpace"
fixed="http://unstats.un.org/unsd/methods/m49/m49alpha.htm" use="optional"/>
</restriction>
</simpleContent>
</complexType>
<!-- ==================================================================
-->
</schema>
================
Microsoft's online .NET validator
http://www.gotdotnet.com/services/xsdvalidator/Default.aspx says the
attribute restrictions are invalid. Why?? How can I fix it?
OTOH XML Spy says "ok" but when I give it the one-element document
============
<?xml version="1.0" encoding="UTF-8"?>
<my:name xmlns:my="http://xmml.ned.dem.csiro.au/my"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmml.ned.dem.csiro.au/my
./stringRestriction.xsd">2001 Survey 1</my:name>
============
it complains that 'Value does not match facet enumeration "AF AL AU ZW AFG
ALB AUS ZWE Afghanistan Albania Australia Zimbabwe"'
Looks like a wierd bug in Spy??
_____
[This mail represents part of a discussion of work in progress
and should not be used for any purpose without my permission.]
_____
Simon.Cox@csiro.au CSIRO Exploration & Mining
26 Dick Perry Avenue, Kensington WA 6151
PO Box 1130, Bentley WA 6102 AUSTRALIA
T: +61 (8) 6436 8639 F: +61 (8) 6436 8555 C: +61 (4) 0330 2672
http://www.csiro.au/page.asp?type=resume&id=CoxSimon
Received on Wednesday, 16 October 2002 04:36:33 UTC