- From: Jeff Mackay <jmackay@vtopia.com>
- Date: Tue, 28 Oct 1997 09:17:18 -0600
- To: <www-dom@w3.org>
A bunch of comments: 1. The Element interface is missing some methods that I believe should definitely be present: void removeAttribute(String name) raises NoSuchNodeException; The semantics should be obvious. With the current interface, there is no way to remove an attribute from an element. Setting the value to a null string or to null should not actually remove the attribute. void setAttribute(String name, String value); This is for convenience, but is much simpler than creating a new Attribute object each time I need to add an attribute to an element. In the vast majority of cases, an attribute's value list will only contain a single text node. Why not make this simpler? (the Attribute interface should also support a setValue(String value) method). Attribute getAttribute(String name); This is absolutely necessary. Without it, I have to retrieve the attribute named node list from an element (which may be null), and ask it for the attribute. And while we're at it: String getAttributeValue(String name); This would return null if the attribute didn't exist (or if it couldn't be represented as a string). Again this is for convenience. NodeEnumerator getAttributes(); Another convenience method, semantics should be obvious... StringList getAttributeNames(); This would allow delaying the evaluation of attributes until absolutely necessary (although the Java package would need an interface defined for StringList). 2. The DOM desparately needs a factory interface. IDL doesn't support constructors, which is fine, as long as a factory interface is provided to actually create the objects provided by a service. I would suggest the following minimal interface: interface NodeFactory { public Node newNode(int nodeType); public Node newNode(); public Element newElement(); public Attribute newAttribute(); public Comment newComment(); public PI newPI(); public Text newText(); public Document newDocument(); public NamedCharacterReference newNamedCharacterReference(); public NumericCharacterReference newNumericCharacterReference(); } Without the factory interface, ALL code that adds content to a document has implementation dependencies. 3. The package name for the DOM Java interfaces should be "org.w3.dom" or "org.w3c.dom". ------------------------------------------- Jeff Mackay Vtopia, Inc. Plumbing for Online Properties http://www.vtopia.com/
Received on Tuesday, 28 October 1997 10:16:26 UTC