Okay, thanks for explaining.

Werner

Geoffrey Fairchild wrote:
> And one other thing.  I just wanted to explain why we're using the mapping
> instead of the code generator.  Prior to using Castor, we were manually
> parsing the XML using DocumentBuilderFactory and DocumentBuilder.  We then
> threw the data we parsed into a bunch of different Java objects that we use
> to represent the data.  We chose to use Castor's mapping ability because
> this would allow us to not have to redesign all of our code that's already
> designed around these objects.  Castor's mapping just throws the data into
> our objects and lets us go about our business without having to make a lot
> of changes.  For our purposes, it makes sense, at least for right now, to
> keep using the mapping and to simply enable XSD validation.
> 
> On Wed, Jul 16, 2008 at 1:01 PM, Geoffrey Fairchild <[EMAIL PROTECTED]>
> wrote:
> 
>> 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
>>>
>>>
>>>
> 

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to