Hi Kurt,
Kurt Riede <[EMAIL PROTECTED]> wrote on 11/20/2006 06:15:32 PM:
> Hello xerces users,
>
> the Schema API of xerces offers the element and attribute
> declarations to the DOM nodes in an XML document:
> I might have a DOM element in form of a PSVIElementNSImpl instance
> with the associated element declaration as an instance of type
> XSElementDeclaration. Futhermore, the element declaration has a
> complex type with several particles. So far that's fine, but is
> there also an easy way with xerces to associate the child elements
> to the particles of a complex content model?
Xerces transforms the content model into a DFA (see [1]) which it uses for
validation. We don't store the XSParticles in this representation but it
should give you some idea of the complexity and perhaps a starting point.
> schema fragment sample:
> <xs:element name="a">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="b" maxOccurs="unbound"/>
> <xs:element name="c" maxOccurs="unbound"/>
> </xs:sequence>
> </xs:complexType>
> <xs:element>
>
> instance sample:
> <a>
> <b/><b/><b/>
> <c/><c/><c/><c/>
> </a>
>
> result sample structure:
>
> element a
> particle[0]
> <xs:sequence>
> particle[0]
> <xs:element name="b"/>
> { b, b, b }
> particle[1]
> <xs:element name="c"/>
> { c, c, c, c }
> { }
>
> Simmilar of course for possibly nested sequence, choice or all
> particles. So the resulting data model is a combination of the
> particles hierarchy of a complex type and the nodes of a concret
> instance. I'm thinking e.g. of a traverser that traverses the
> particles hierarchy and emits events as a pair of a particle and a
> list of all corresponsing child elements.
>
> Any hints are welcome.
>
> Regards,
> Kurt
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
[1]
http://svn.apache.org/viewvc/xerces/java/trunk/src/org/apache/xerces/impl/xs/models/XSDFACM.java
Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: [EMAIL PROTECTED]
E-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]