- From: Ernest Wan <ernest@research.canon.com.au>
- Date: Thu, 08 Mar 2001 01:30:01 +1100
- To: "Rahman, Rezaur" <rezaur.rahman@intel.com>
- Cc: www-dom@w3.org
Hi Rezaur,
At 11:35 AM 6/03/2001 -0800, you wrote:
> > with e.g. a DTD declaration like
> > <!ELEMENT example (((child1, child2*)*) | child3+)>
> > because what kind of hierarchy of list-operators, CMChildren
> > and submodels
> > would you get here?
>The CMChildren describe the element declaration through a parse tree. The
>listOperator and the submodel describes this tree. So the structure for the
>above example will look like this:
>1. The element declaration for "Example" will point to a CMChildren say
>CMCh1.
>ElementDeclaration Example= {
> contentType = ELEMENT;
> CMChildren = CMCh1;
> CMNamedNodeMap = EmptyNamedNodeMap; /* no attributes defined */
> CMNamedNodeMap = {child1,child2,child3);
>}
>
>2. The structure of CMChildren CMCh1 will be like this.
>
>CMChildren CMCh1 = {
> listOperator = "|";
> elementType = 1; /* string data type */
> multiplicity = 1;
> CMNamedNodeMap={(CMChildren CMCh2)(CMChildren CMCh3)};
> isPCDataOnly = false;
>};
>
>
>CMChildren CMCh2 =
> listOperator = ",";
> elementType = 1; /* string data type */
> multiplicity = 0|many;
> CMNamedNodeMap={(CMChildren CMCh4)(CMChildren CMCh5)};
> isPCDataOnly = false;
>};
As the order of the sub-models is important for a sequence operator, should
CMNodeList be used for "submodels" instead of CMNamedNodeMap? According to
the working draft:
"CMNamedNodeMap is the CM analogue to NamedNodeMap. The order is
not meaningful."
>CMChildren CMCh4 =
> listOperator = "";
> elementType = 1; /* string data type */
> multiplicity = 1;
> CMNamedNodeMap={(ElementDeclaration child1)};
> isPCDataOnly = false;
>};
>
>CMChildren CMCh5 =
> listOperator = "";
> elementType = 1; /* string data type */
> multiplicity = 0|more;
> CMNamedNodeMap={(ElementDeclaration child2)};
> isPCDataOnly = false;
>};
>
>CMChildren CMCh3 =
> listOperator = "";
> elementType = 1; /* string data type */
> multiplicity = 1|more;
> CMNamedNodeMap={(ElementDeclaration child3)};
> isPCDataOnly = false;
>};
>
>Hope this helps.
The example has been extremely useful.
Thanks.
Ernest Wan
Received on Wednesday, 7 March 2001 09:25:45 UTC