[Bug 4639] Allow cycle checking on element graphs as well as document graphs

http://www.w3.org/Bugs/Public/show_bug.cgi?id=4639


virginia.smith@hp.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Keywords|needsAgreement              |




------- Comment #11 from virginia.smith@hp.com  2007-11-04 20:13 -------
The following are my recommendations for changing the specification:

1. Replace section 4.3.1 with the following text:
------
sml:acyclic is used to specify that a cycle is not allowed for an SML reference
type.

Consider a directed graph whose arcs are SML references of a given complexType
(and any derived types) and whose nodes are the set of elements pointed to by
any of these SML references. A cycle is formed for an element E if the path
that is formed by recursively following an SML reference (of a given
complexType and any derived types) from E to its target leads back to E. 
Model validators that conform to this specification MUST support the
sml:acyclic attribute on any <xs:complexType> element in a schema document.
This is a boolean attribute and its value can be either true or false.
--------------

2. Replace section 4.3.1.3 with the following text:
----------------
If T is a complex type definition with {acyclic} true, then instances of T MUST
NOT create cycles in any model. More precisely, the directed graph whose arcs
are SML references of a given complexType (and any derived types) and whose
nodes are all the elements pointed to by this set of SML references, must be
acyclic.
----------------

3. Replace section 8.1.1 with the following text:
----------------
8.1.1 sml:acyclic 
Used to specify that an SML reference does not create any cycles in a model.

If this attribute is set to true for a complex type D, then instances of D
(including any derived types of D) that are SML references cannot create any
cycles in a model. In the following example, HostedOnRefType is a complex type
declaration whose instances can not create a cycle:

<xs:complexType name="HostedOnRefType" sml:acyclic="true">
...
</xs:complexType>

If the sml:acyclic attribute is not specified or set to false for a complex
type declaration ration, then instances of this type that are SML references
may create cycles in a model.
------------------------

Received on Sunday, 4 November 2007 20:13:18 UTC