Great. Feel free to ask questions whenever such arise.

Werner

Geoffrey Fairchild 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://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
>>
>>
>>
> 

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

    http://xircles.codehaus.org/manage_email


Reply via email to