I'll look into the XML code generator.  I didn't know what that was and
didn't see that it existed, and that may very well do what I want it to do.

On Wed, Jul 16, 2008 at 12:15 PM, Werner Guttmann <[EMAIL PROTECTED]>
wrote:

> Geoffrey,
>
> Geoffrey Fairchild wrote:
> > Hm, maybe I'm misunderstanding the purpose of the mapping file.  I simply
> > want to map from an XML file containing data into a Java object
> > representation of that data.  The Castor mapping XML file seems like the
> > most logical way to do this without having to write a Java XML parser.
> Yes, it is most commonly used way of XML data binding when you only have
> Java classes, but no XML schema.
> > The
> > XSD merely provides requirements on how the XML file should be formed.
> SUre. But with Castor XML, when you have an XML schema, there's a second
> option to about XML data binding, i.e. mapping between XML and Java: the
> XML code generator. You basically use the code generator to create Java
> classes from an XML schema that automatically correspond to the XML
> schema defined. In addition to these domain classes, the code generator
> will generate a second set of Java classes, i.e. the descriptor classes.
> More further down.
>
> > I simply followed the guide at
> > http://www.castor.org/how-to-enable-xml-validation.html to get my XML
> file
> > validated against the XSD, but I'm having the issues I previously
> mentioned.
> Okay, addressing just this question, have you seen my inline comment re:
> the invalid use of the 'schemaLoaction' attribute in the mapping file ?  >
> > What are you talking about when you mention "internal descriptor
> classes"?
> As explained above, when using the code generator to generate Java
> classes from an XML schema, the code generator will generate a second
> set of classes which we call 'descriptor classes'. There descriptor
> classes define the XML data binding between the Java classes generated
> and the XML contract defined in the XML schema. In other words, there is
> no need to define a mapping file any more.
>
> Actually, when you use a mapping file, on startup Castor XML converts
> the mapping definitions to (internally use) descriptors.
>
> > I looked over your website, and it primarily talks about the mapping
> file,
> > so I'm a little confused.  I don't see any mention of "internal
> descriptor
> > classes."
> No, true. But in the left sided menu bar, you'll find a section 'XML
> code generator', incl. documentation about integration with build tools
> such as Ant, Maven, the binding file, etc.
>
> >
> > Thanks for your help.
> >
> > Geoff
> >
> > On Wed, Jul 16, 2008 at 4:40 AM, Werner Guttmann <
> [EMAIL PROTECTED]>
> > wrote:
> >
> >> Geoffrey,
> >>
> >> why do you want to be using a mapping file to map your Java classes to
> >> XML when you have an XML schema available and as such could be in a
> >> position where you generate Java classes (and internal descriptor
> >> classes) from the XML schema, and as such avoid having to write a
> >> mapping file.
> >>
> >> Geoffrey Fairchild wrote:
> >>> First of all, if you have a Something Awful account, you can read a
> more
> >>> formatted version of this here:
> >>> http://forums.somethingawful.com/showthread.php?threadid=2902508
> >>>
> >>>
> >>>
> >>> I'll go ahead and rewrite this if you don't have an account.
> >>>
> >>>
> >>>
> >>> I've been messing with this most of the afternoon, and I just can't
> >> figure
> >>> it out.
> >>>
> >>>
> >>>
> >>> Basically, I've got an XML file I've got to parse.  I need to put the
> >> data
> >>> into a few Java objects, and Castor is a really easy way to do it.
> >>  Castor's
> >>> working, and it's putting the data in the container properly.  The
> >> problem
> >>> is that I have an XSD schema file defined to validate the XML file, but
> >> I'm
> >>> having issues getting Castor to validate it.  The XSD is necessary
> >> because I
> >>> can type complete garbage into the XML file, and Castor reports success
> >> even
> >>> though it's totally invalid XML.
> >> That's an odd statement. If it's not valid XML, Castor will report
> >> exceptions.
> >>
> >>> I want to prevent this from happening.
> >>>
> >>>
> >>>
> >>> I'll get to it.  Here're the pertinent lines from *castor.xml*, the
> file
> >>> that Castor uses to map the XML elements/attributes to the Java
> objects:
> >>>
> >>>
> >>>
> >>> <?xml version="1.0"?>
> >>>
> >>> <!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN"
> >>>
> >>>             "http://castor.org/mapping.dtd";>
> >>>
> >>>
> >>>
> >>> <mapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> >>>
> >>>             xmlns="http://centurylogix.com/dbconfig";
> >>>
> >>>             xsi:schemaLocation="
> >> http://centurylogix.com/dbconfigdb-config-1.0.xsd";>
> >>>
> >>>
> >>>             <class
> >>> name="com.centurylogix.graph.hybrid.io.containers.DataSourceInfo">
> >>>
> >>>                         <map-to xml="dataSource" ns-uri="
> >>> http://centurylogix.com/dbconfig"; />
> >> Why on earth are you referencing the XML schema file from your mapping
> >> file ? That does not make sense at all. If you want Castor to validate
> >> your XML document instance against an XML schema, please refer to the
> >> XML schema from the XML document instance 8and nowhere else).
> >>
> >>> If you need more than that, I can post it, but those should be the only
> >>> relevant lines.
> >>>
> >>>
> >>>
> >>> Here're the first few lines from *db-config-1.0.xsd* which is obviously
> >> the
> >>> schema file used to verify the XML file:
> >>>
> >>>
> >>>
> >>> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
> >>>
> >>>             targetNamespace="http://centurylogix.com/dbconfig";
> >>>
> >>>             xmlns="http://centurylogix.com/dbconfig";
> >>>
> >>>             elementFormDefault="qualified">
> >>>
> >>>
> >>>
> >>> And here're the first few lines from *db-config-sample.xml*, a sample
> XML
> >>> file that Castor reads in and puts into the correct Java objects:
> >>>
> >>>
> >>>
> >>> <?xml version="1.0" encoding="UTF-8"?>
> >>>
> >>> <dataSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> >>>
> >>>             xsi:schemaLocation="
> >> http://centurylogix.com/dbconfigdb-config-1.0.xsd";>
> >>>
> >>>
> >>> I do have a *castor.properties* file defined with the following
> contents,
> >>> per http://www.castor.org/how-to-enable-xml-validation.html:
> >>>
> >>>
> >>>
> >>> org.exolab.castor.indent=true
> >>>
> >>> org.exolab.castor.parser.namespaces=true
> >>>
> >>> org.exolab.castor.sax.features=
> http://xml.org/sax/features/validation,\<http://xml.org/sax/features/validation,%5C>
> <http://xml.org/sax/features/validation,%5C>
> >>>
> >>>             
> >>> http://apache.org/xml/features/validation/schema,\<http://apache.org/xml/features/validation/schema,%5C>
> <http://apache.org/xml/features/validation/schema,%5C>
> >>>
> >>>
> >> http://apache.org/xml/features/validation/schema-full-checking
> >>>
> >>>
> >>> When I try to unmarshal the data, this is the error I get:
> >>>
> >>>
> >>>
> >>> java.lang.RuntimeException: org.exolab.castor.mapping.MappingException:
> >>> Nested error: org.exolab.castor.xml.MarshalException: Attribute
> >> "xmlns:xsi"
> >>> must be declared for element type "mapping".{File: [not available];
> line:
> >> 7;
> >>> column: 74}
> >>>
> >>>
> >>>
> >>> I don't quite understand this error.  "xmlns:xsi" is clearly  defined
> in
> >> the
> >>> mapping element in castor.xml.  Do any of you know what I'm doing
> wrong?
> >>> Any ideas at all?  I think this is one those things that's probably
> >> simple
> >>> to fix, but I've just been staring at it too long, and I'm not seeing
> the
> >>> solution.  Thanks!
> >>>
> >> ---------------------------------------------------------------------
> >> To unsubscribe from this list, please visit:
> >>
> >>    http://xircles.codehaus.org/manage_email
> >>
> >>
> >>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>    http://xircles.codehaus.org/manage_email
>
>
>

Reply via email to