You are not logged in Log in Join
You are here: Home » Members » jim » ZDOM-save » InitialNotes

Log in
Name

Password

 
 

History for InitialNotes

??changed:
-
Zope/XML Integration

  [InitialIssues]

  Goals

    XML -> Zope

      Loading XML text creates objects

        Loading XML text causes objects to be created. These objects
        are DOM objects and Zope objects.

      Assigning behavior

        A mapping can be defined for assigning classes to
        elements. The classes can be ZClasses or regular Python
        classes that have been registered during product
        initialization.

	The mapping is namespace aware. In fact, we may require that
	namespaces be Iused. Perhaps we can provide an option during
	import to specify a default namespace.

	A class can register for more than 1 tag. A class can register
	as the default for a namespace.

	Should there be a way to register a class for an attribute?

        Should we instantiate id and idref links? (Probably)

      Validation

        We should provide optional validation support. This might be
        achieved in a number of ways:

	- Let custom instances perform validation during building.

	- Embed validation rules in custom in custom class definitions.

	- Use validation rules (e.g. state machine) compiled and
          cached from data such as DTDs and other kinds of schema
          information.

      Custom-object parsing protocol

        How are instances created? In particular, what protocols do
        custom classes have to support when constructcd? Are there
        existing standards for this? Some posibilities:

	- Call constuctor wlth sequence of  sub-elements and attribute mapping

	  def __init__(self, elements, attributes)

	  This is simple, but pretty XML specific. We also don't get
	  to build the object until the subobjects are built.

	- Call constructor with parent node and attributes and call
          addElement with each element.

	  def __init__(self, parent, attributes)

	  def addElement(self, element)

	  Maybe after after creating an element, we use it in the
	  context of the parent:

	  e=aClass(p,a)

	  p.addElement(e)

	  e=e.__of__(p)

	- Does the DOM define this? 

      Optimization

        Not every element should be a database object

	  How do we decide which?

	  - Custom class

	  - Elements known, from schema information, to have
            subobjects are persistent.

	  - Elements start out non-persistent and are made persistent
            when they get subelements.

	Want an efficient data structure, especially for standard XML objects