[
Lists Home |
Date Index |
Thread Index
]
- From: "Rick Jelliffe" <ricko@allette.com.au>
- To: <xml-dev@ic.ac.uk>
- Date: Sun, 5 Oct 1997 16:19:15 +1000
> From: Peter Murray-Rust <peter@ursus.demon.co.uk>
> This requires the implementation to provide for LOCATORs (children) to
> 'inherit' attributes from EXTENDED (parent). In my own DTD I would like to
> be able to use this philosophy, as in the following simple example of a
> list of numbers, all of type FLOAT
> Is this seen as a sufficiently general mechanism in XML that it is worth
> creating a DTD-independent engine for this? If so, is there a general
> mechanism for indicating (in the document instance or DTD) that this
> operation is to be carried out? At present it is only prose in the XLL
> spec? It might be preferable to have a syntactic stement of this
> requirement - do otehrs feel the same? Can AFs be used?
In your particular example, it can already be done using XLL, with only
a small change in the invocation syntax.
The VAR elements have a link to the first conatining parent element
with a role "datatype". The LIST element has an XLL href (remapped to
the name "type") that links to the approporiate type element.
The TYPES container has empty elements for all the different types
you care to make. An example of these is the float type, which
in turn has a pointer to some defining documentation.
Perhaps what you need can best be dealt with by defining some
standard values for the XLL role attribute! (See the values for
role= below for candidates.) I think the standard definition
of some role types (i.e. moving "role" into more certain
architecture") would be highly useful--if no common values are
defined, role will go the way of PIs and languish in unuseability
due to meaninglessness.
<!DOCTYPE example [
<!-- Dummy top level -->
<!ELEMENT example - - ( TYPES, LIST* )>
<!-- Define container for types -->
<!ELEMENT TYPES - - ( FLOAT, ... )>
<!-- First, define the element type float, and give documentation -->
<!ELEMENT FLOAT - O EMPTY>
<!ATTLIST FLOAT
XML-LINK CDATA #FIXED "simple"
href CDATA #FIXED "float-definition.htm"
role CDATA #FIXED "lexical-type-specifier"
id ID #FIXED "FLOAT" >
<!-- Now, define the LIST element type -->
<!ELEMENT LIST - O ( VAR* )>
<!ATTLIST LIST
XML-LINK CDATA #FIXED "simple"
XML-ATTRIBUTE CDATA #FIXED "href type"
type CDATA #REQUIRED
role CDATA #FIXED "data-type-selector">
<!-- Define the VAR element type -->
<!ELEMENT VAR - - (#PCDATA) >
<!ATTLIST VAR
XML-LINK CDATA #FIXED "simple"
href CDATA #FIXED "#HERE()ANCESTOR(1, *, role, data-type-selector)"
role CDATA #FIXED "link-to-data-type-selector"
title CDATA #REQUIRED >
]>
<!-- Here is the instance -->
<example>
<TYPES><FLOAT/></TYPES>
<LIST TYPE="#ID(FLOAT)">
<VAR TITLE="x" >1.2</VAR>
<VAR TITLE="y">2.3</VAR>
</LIST>
</example>
Rick Jelliffe
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo@ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)
|