W3C home > Mailing lists > Public > www-dom@w3.org > January to March 1999

RE: HTML APIs

From: Miles Sabin <msabin@cromwellmedia.co.uk>
Date: Tue, 5 Jan 1999 10:04:38 -0000
Message-ID: <c=US%a=_%p=Cromwell_Media%l=ODIN-990105100438Z-65129@odin.cromwellmedia.co.uk>
To: "'Lauren Wood'" <lauren@sqwest.bc.ca>, "'www-dom@w3.org'" <www-dom@w3.org>
Lauren Wood wrote,
> The DOM Level 1 doesn't actually define how to create
> (or save, for that matter) a document - it's something
> that we're currently > discussing for Level 2. So what
> should the Level 2 spec say on the matter?

Err ... which matter? Document creation or auto-insert
of HTML and BODY elements?

On the latter, I think that HTMLDocument.getBody()
should be defined to insert HTML and BODY elements if
none currently exist, but that no other methods should
do auto-insertion ... if an explict insert or append
would create an invalid structure model an exception
should be thrown.

On the former, I can say what I'd like the Java version
of a hypothetical API to look like. Something along the
lines of the, by now almost cannonical, abstract
factory + dynamic loading pattern that's used all over
the place in Suns and others APIs,

  package org.w3c.dom;

  public interface DocumentFactory
  {
    public abstract Document createDocument();
  }

  public abstract final class DocumentFactoryBuilder
  {
    public static DocumentFactory getInstance()
    {
      // try-catch omitted for brevity
      String docFactoryClassName = 
        System.getProperty("org.w3c.dom.documentfactory");

      return Class.forName(docFactoryClassName).newInstance();
    }
  }


  package org.w3c.dom.html;

  public interface HTMLDocumentFactory
  {
    public abstract HTMLDocument createDocument();
  }

  public abstract final class HTMLDocumentFactoryBuilder
  {
    public static HTMLDocumentFactory getInstance()
    {
      // try-catch omitted for brevity
      String docFactoryClassName = 
        System.getProperty("org.w3c.dom.htmldocumentfactory");

      return Class.forName(docFactoryClassName).newInstance();
    }
  }

I'm not sure how this should be mapped to IDL tho' ...
the abstract class with an implemented method is
essential to this technique. Some comments from a
CORBA expert would be useful.

Cheers,


Miles

-- 
Miles Sabin                          Cromwell Media
Internet Systems Architect           5/6 Glenthorne Mews
+44 (0)181 410 2230                  London, W6 0LJ
msabin@cromwellmedia.co.uk           England
Received on Tuesday, 5 January 1999 05:08:56 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 22 June 2012 06:13:46 GMT