Hello ! Thank You, Lawrence.
The original problem was, that in my schema there was no global element <header>, so I had to parse it with VdxHeaderTyp class, with no success. Parsing the parent element of header was impossible, because it was the root element, and the xml-file is over 1 Gigabyte in size. So I changed the local element <header> to a global element, and the HeaderDocument-class was generated, parsing works fine. Such a luck, that my organization is the owner of the schema itself. Regards, Frank > -----Ursprüngliche Nachricht----- > Von: Lawrence Jones [mailto:[EMAIL PROTECTED] > Gesendet: Donnerstag, 2. Juni 2005 18:09 > An: user@xmlbeans.apache.org > Betreff: RE: under which circumstances schema compiler creates a > Document class ? > > > Hi Frank > > I can answer your first question and part of your second, but for the > precise way in which XmlBeans deals with e.g. <xml-fragment> > stuff I'll > have to defer to someone else. > > This link may help - > http://xmlbeans.apache.org/docs/2.0.0/guide/conJavaTypesGenera > tedFromUse > rDerived.html. > > In short, in a schema, global elements, global attributes and global > types (to name but 3) can have the same name but need to be > regarded as > being in different "symbol spaces" (see section 2.5 of the XML Schema > Spec Part 1 - > http://www.w3.org/TR/xmlschema-1/#concepts-nameSymbolSpaces). To > distinguish these in the generated Java classes we first translate the > name of the schema element/attribute/type to some suitable > Java name and > then append, respectively, "Document", "Attribute" or nothing. (Local > elements/attributes/types can be anonymous in the schema and > internally > we generate classes for these too with generated names). > > So for you HeaderDocument.java corresponds to the global > element called > "header" and VdxHeaderTyp.java corresponds to the global type > vdx_header_typ. > > My guess is that the fragments you are passing in look something like > this: > > <header> ... </header> > > In that case the XML does correspond to an element, and not > to a type - > hence the result below is not unexpected. > > But, as I say, not quite sure how the <xml-fragment> ... > </xml-fragment> > stuff comes into this. It may be that you could use that to wrap your > text and then interpret it as a type instead. Not sure. > > Cheers, > > Lawrence > > > -----Original Message----- > > From: Weiler, Frank (KBV) [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, June 01, 2005 11:01 PM > > To: user@xmlbeans.apache.org > > Subject: under which circumstances schema compiler creates > a Document > > class ? > > > > Hello ! > > > > I would like to know, for which XML Schema constructs the schema > compiler > > creates a Document class for a element or type defined in > the schema ? > > > > I have a complex XML schema, which constists of multiple xsd-files, > the > > schema makes extensive use of namespaces and type > inheritance (mostly > > types are derived by restriction). > > In my application I have to parse xml fragments, and if I > try to parse > the > > fragment with the appropriate type class, the child elements are not > set. > > If I use the appropriate Document class, all works fine. > But there is > no > > Document class for all schema types or elements. > > > > Example (schema fragment only): > > <xs:element name="header" type="vdx_header_typ"/> > > <xs:complexType name="vdx_header_typ"> > > <xs:complexContent> > > <xs:restriction base="ehd_header_typ"> > > <xs:sequence> > > <xs:element ref="id"/> > > <xs:element name="document_type_cd" > > type="vdx_document_type_cd_typ"/> > > <xs:element ref="service_tmr"/> > > <xs:element name="origination_dttm" > > type="origination_dttm_typ"/> > > <xs:element name="provider" > type="provider_typ" > > maxOccurs="unbounded"/> > > <xs:element name="interface" > > type="vdx_interface_typ"/> > > </xs:sequence> > > </xs:restriction> > > </xs:complexContent> > > </xs:complexType> > > > > The schema compiler creates two classes: HeaderDocument.java and > > VdxHeaderTyp.java > > > > A call to > > VdxHeaderTyp head = VdxHeaderTyp.Factory.parse(xmltext); > > let all childs unset (null), f.e. > > head.getId() returns null. > > > > A call to > > HeaderDocument head = HeaderDocument.Factory.parse(xmltext) > > works and I can get the id child with head.getId() > > > > So, what's the problem ? > > Regards, Frank > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]