RE: Representing NOTATIONs in XML Schema?

Let me attempt ..

First, notation decl
<xsd:notation name="ISO-1" public="-//ROGER//Costello1//EN"
	system="http://www.iso.org/country-codes/version1" />

<xsd:notation name="ISO-2" public="-//ROGER//Costello2//EN"
	system="http://www.iso.org/country-codes/version2" />

Second, a user-derived notation type
<xsd:simpleType name="myNOTATION">
    <xsd:restriction base="xsd:NOTATION">
        <xsd:enumeration value="ISO-1"/>
	  <xsd:enumeration value="ISO-2"/>
    </xsd:restriction>
</xsd:simpleType>

Third, deploy myNOTATION
<xsd:element name="CountryCode">
    <xsd:simpleContent>
        <xsd:extension base="xsd:string>
            <xsd:attribute name="vocabulary" type="myNOTATION"
default="ISO-1"/>
        </xsd:extension>
    </xsd:simpleContent>
</xsd:element>

Caution: NOTATION in Schema is not equivalent to NOTATION in XML 1.0

Asir


-----Original Message-----
From: xmlschema-dev-request@w3.org
[mailto:xmlschema-dev-request@w3.org]On Behalf Of Roger L. Costello
Sent: Tuesday, July 02, 2002 2:06 PM
To: xmlschema-dev@w3.org; costello@mitre.org
Subject: Representing NOTATIONs in XML Schema?



Hi Folks,

I am trying to convert a DTD which uses NOTATIONs into an XML Schema. I
never use NOTATIONs so I am not sure what the XML Schema should look
like.

[Separate question: does anyone use NOTATIONs in XML?  I thought that
NOTATIONs was an SGML thing that had lost favor in the XML community.  I
would be very interested in knowing the answer to this question.]

Let's take an example.  Here's a DTD snippet which declares an element
and a NOTATION attribute:

<!ELEMENT CountryCode (#PCDATA)>
<!ATTLIST CountryCode
            vocabulary NOTATION (ISO-1 | ISO-2) "ISO-1">
<!NOTATION ISO-1 SYSTEM "http://www.iso.org/country-codes/version1">
<!NOTATION ISO-2 SYSTEM "http://www.iso.org/country-codes/version2">

What would the corresponding XML Schema look like?  Here's my take on
it:

<xsd:element name="CountryCode">
    <xsd:simpleContent>
        <xsd:extension base="xsd:string>
            <xsd:attribute name="vocabulary" type="ISO-1_NOTATION"/>
            <xsd:attribute name="vocabulary" type="ISO-2_NOTATION"/>
        </xsd:extension>
    </xsd:simpleContent>
</xsd:element>

<xsd:simpleType name="ISO-1_NOTATION">
    <xsd:restriction base="xsd:NOTATION">
        <xsd:enumeration
                 value="http://www.iso.org/country-codes/version1"/>
    </xsd:restriction>
</xsd:simpleType>

<xsd:simpleType name="ISO-2_NOTATION">
    <xsd:restriction base="xsd:NOTATION">
        <xsd:enumeration
                 value="http://www.iso.org/country-codes/version2"/>
    </xsd:restriction>
</xsd:simpleType>

Some things to note:

1. I know that this XML Schema is incorrect.  The datatypes spec says
that the value of a NOTATION must be a QNAME.  I am not giving the
enumeration facet a QNAME.

2. The datatype's spec also says that it is invalid to use the NOTATION
datatype directly.  Rather, you must use a derived type.  That's why I
created the simpleType definitions.

3. The bottom line is: I really don't know how to represent NOTATIONs in
XML Schemas.  Any help would be appreciated.  /Roger

Received on Tuesday, 2 July 2002 14:31:32 UTC