International booleans proposal

Hopefully this amounts to what Andrew Layman and Rick Jeliffe considers a
well-thought out alternative proposal.  I would appreciate any stones that
people could throw at it since I think it solves a lot of problems with
minimal additional functionality.

Basically, the idea is to add a few things to the enumeration and literal
elements to provide a minimum transform layer when extending datatypes.
Previous messages I've posted to the schema
http://lists.w3.org/Archives/Public/www-xml-schema-comments/1999JulSep/0053.
html and
http://lists.w3.org/Archives/Public/www-xml-schema-comments/1999JulSep/0029.
html were more ambitious.  This tries to get the essentials done for the
"international booleans" problems with the least amount of additional
functionality.

---------
Current version of datatypes

2.4.2.4 enumeration
[Definition:] Presence of an enumeration facet constrains the value space of
the datatype to the specified list. The enumeration facet can be applied to
to the following datatypes: string (§3.2.1), real (§3.2.3), timeInstant
(§3.2.4), timeDuration (§3.2.5), recurringInstant (§3.2.6), language
(§3.2.9), NMTOKEN (§3.3.1), Name (§3.3.3), NCName (§3.3.4), ENTITY (§3.3.8),
NOTATION (§3.3.10), decimal (§3.3.11), integer (§3.3.12),
non-negative-integer (§3.3.13), positive-integer (§3.3.14),
non-positive-integer (§3.3.15), negative-integer (§3.3.16), date (§3.3.17),
time (§3.3.18). No order or any other relationship is implied between the
elements of the enumeration list. 

New would have to be something like

[Definition:] Presence of an enumeration facet lists acceptible lexical
values for the datatype.  By default, an enumeration facet constrains the
lexical space to the enumerated values.

-------------

Example of enumerations

Currently:

<datatype name="holidays">   
   <basetype name="date"/>   
   <enumeration>   
      <literal>   
        --01-01    <!-- New Year's day -->   
      </literal>   
      <literal>   
        --07-04    <!-- 4th of July -->   
      </literal>   
      <literal>   
        --11-25    <!-- Thanksgiving -->   
      </literal>   
      <literal>   
        --12-25    <!-- Christmas -->   
      </literal>   
   </enumeration>   
</datatype>

Replace with (I've switched to fixed days in 2000, cause I have a
significant amount of issues with dates in the current draft covered in
different messages)

<datatype name="holidays">   
   <basetype name="date"/>   
   <enumeration>   
      <literal value="2000-01-01">
	NewYearsDay   
      </literal>   
      <literal value="2000-07-04">   
	FourthOfJuly
      </literal>   
      <literal value="2000-11-23">
	Thanksgiving   
      </literal>   
      <literal value="2000-12-25">
	Christmas   
      </literal>   
   </enumeration>   
</datatype>


----------------

Schema for datatypes:

Currently:

<element name='enumeration'> 
	<archetype>
		 <element ref='literal' minOccurs='1' maxOccurs='*'/> 
	</archetype> 
</element> 

<!-- the true datatype of the following depends on the basetype --> 
<element name='literal' type='string'/> 

Suggested replacement:

<element name='enumeration'> 
	<archetype>
		 <element ref='literal' minOccurs='1' maxOccurs='*'/> 
		<attribute name='model' type='NCName' default='closed'> 
			<enumeration> 
				<!--  lexical value may match one of the
enumerated values or 
					may be valid lexical value for base
type -->
				<literal>open</literal> 
				<!--  lexical value must match one of the
enumerated values  -->
				<literal>closed</literal> 
			</enumeration> 
		</attribute> 
	</archetype> 
</element> 

<!-- the true datatype of the following depends on the basetype --> 
<element name='literal' type='string'> 
	<archetype>
		<!-- if provided, the value is a representation of this
literal in the lexical space of the base type.
			if not provided, the content of the element is used
as the value -->
		<attribute name='value' type='string'/>
	</archetype>
</element>


--------------

Here is how this could be used for international booleans

Received on Monday, 15 November 1999 13:52:42 UTC