- From: Rahman, Rezaur <rezaur.rahman@intel.com>
- Date: Tue, 6 Mar 2001 11:35:11 -0800
- To: "'Sander Bos'" <sander@x-hive.com>, www-dom@w3.org
> -----Original Message----- > From: Sander Bos [mailto:sander@x-hive.com] > Sent: Tuesday, February 27, 2001 11:59 PM > To: www-dom@w3.org > Subject: Re: CMChildren > > > > > I found the description of CMChildren in the DOM3 CMLS module a bit > > unclear. CMChildren is said to be "an element in the context of a > > CMNode". On the other hand, the operation > > ElementDeclaration.getCMChildren() which returns a > CMChildren is said to > > "gets content model of element". "An element in the > context of a CMNode" > > and "content model of element" do not sound equivalent to me. > > The CMElement describes the content model for an element declaration. We shall see in the following example how it is done. As for the context of a CMNode, note that each element declarations is a CMNode and hence the term "in the context of a CMNode" which implies in the context of a CMNode of type ElementDeclaration. > > I also have some problem understanding the following attributes of > CMChildren: > > - listOperator (whose description is "Operator list") and > > - subModels (whose description is "Additional CMNodes in > which the element > > can be defined"). > > > > Any clarification will be appreciated. > > Sorry Ernest, no answer from me. I would just like to say > that I am also > confused by these interfaces. I would like to say to > potential answer givers > that it would be useful to have an example > object-representation of the CM > 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; }; 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. > > Thanks in advance for helping us out, > > --Sander. > > > >
Received on Tuesday, 6 March 2001 14:35:35 UTC