- From: Laurens van den Oever <laurens@Q42.nl>
- Date: Fri, 26 Jul 2002 05:36:50 -0400 (EDT)
- To: <www-dom@w3.org>
Hi,
I just saw the DOM Level 3 Validation Specification. This looks very
interesting to me since we at Q42 are building Xopus (xopus.org), a
validating XML editor. During development of this editor we came to a
similar interface:
boolean canContainNode (parentNode, nodeName, namespaceURI)
boolean canMoveUp (node)
boolean canMoveDown (node)
boolean canDeleteNode (node)
array getPossibleChildren (node) // Returns both elements and
attributes
Obviously, our interface not as extensive as the proposed specification,
but we do have atomic functions for moving nodes (swapping them with a
sibling). I wondered how the proposed interface would deal with the
following situation:
XML:
<parent>
<childA/>
<childB/>
</parent>
Schema:
<xs:element name="parent">
<xs:complexType>
<xs:choice minOccurs="2" maxOccurs="2">
<xs:element name="childA" type="xs:string"/>
<xs:element name="childB" type="xs:string"/>
</xs:choice>
<xs:complexType>
</xs:element>
In this example the parent element is valid if and only if it has 2
children. However, it remains valid when its children are swapped. So
canMoveUp(childBNode) is true for the given xml. How could I draw the
same conclusion when using the proposed specification?
Note: both canMoveUp and canMoveDown can easily be implemented when
using a canSwap(firstNode, secondNode) method.
Greetings,
Laurens van den Oever
Received on Friday, 26 July 2002 09:48:08 UTC