When I make that change, I now get this error:
org.exolab.castor.xml.MarshalException: cvc-elt.1: Cannot find the
declaration of element 'dataSource'.{File: [not available]; line: 3; column:
52}
dataSource is the top-level element in db-config-sample.xml and is defined
in db-config-1.0.xsd. For some reason, Castor isn't seeing the XSD.
On Wed, Jul 16, 2008 at 12:58 PM, Werner Guttmann <[EMAIL PROTECTED]>
wrote:
> Hi Geoffrey,
>
> Geoffrey Fairchild wrote:
> > I'm looking over some of what you said. I'm trying to meet a deadline,
> so
> > right now, I'd just like to get the XSD working with the mapping.
> However,
> > I do plan on looking into the XML code generator next week.
> >
> > I've changed a few things around, but I'm still having issues. For some
> > reason, http://www.castor.org/how-to-enable-xml-validation.html just
> isn't
> > clicking.
> >
> > *castor.xml*:
> >
> > <?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"
> > xsi:noNamespaceSchemaLocation="db-config-1.0.xsd">
> >
> Just repeating myself here: ths is actually invalid. This should read:
>
> <?xml version="1.0"?>
> <!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN"
> "http://castor.org/mapping.dtd">
>
> <mapping>
>
> That should get you going again.
>
> Werner
>
> > *db-config-1.0.xsd*:
> >
> > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
> >
> > *db-config-sample.xml*:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <dataSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > xsi:noNamespaceSchemaLocation="db-config-1.0.xsd">
> >
> > This is the error I get when I try to unmarshal:
> >
> > 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:
> 6;
> > column: 52}
> >
> > Can you tell me what I'm doing wrong here?
> >
> > Thanks for your patience.
> >
> > On Wed, Jul 16, 2008 at 12:40 PM, Geoffrey Fairchild <
> > [EMAIL PROTECTED]> wrote:
> >
> >> 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://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,%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
> >>>
> >>>
> >>>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
> http://xircles.codehaus.org/manage_email
>
>
>