|
Hi,
I'm new to Castor, and am trying
to get the source generator to work. I first tried with a real XML schema, and
then cut it down to a simple test case. But I still can't seem to get it to
work. The code generation seems alright, but the generated classes don't
correctly load the file. I get the
following error when I try to load the above file (tariff1.xml) using
classes generated using tariff.xsd :
Testcase: testTariffIO took 1,121
sec
Caused an ERROR description is a required field. ValidationException: description is a required field.; - location of error: XPATH: algorithm at org.exolab.castor.xml.FieldValidator.validate(FieldValidator.java:196) at org.exolab.castor.xml.util.XMLClassDescriptorImpl.validate(XMLClassDescriptorImpl.java:693) at org.exolab.castor.xml.Validator.validate(Validator.java:118) at org.exolab.castor.xml.Marshaller.validate(Marshaller.java:1152) at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:534) at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:458) at aacom.tariff.model.Algorithm.marshal(Unknown Source) .... Can anyone help ?
Thanks in advance,
John Ferguson Smart.
|
<?xml version="1.0" encoding="iso-8859-1"?> <algorithm name="simple_tariff" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="E:\work\tarificateur\dev\xsd\tariff.xsd"> <description> <summary> <label lang="fr">Un algorithme de tarification simple</label> </summary> </description> </algorithm>
<?xml version="1.0" encoding="iso-8859-1"?> <!-- edited with XML Spy v4.1 U (http://www.xmlspy.com) by JFS (Yahoo) --> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:annotation> <xs:documentation> Cette structure représente un algorithme de calcul complexe. L'algorithme prend comme entrée un ensemble de paramétres d'entrée, et évalue, en se servant des formules et des tableaux définis, un ensemble de résultats. </xs:documentation> </xs:annotation> <xs:element name="algorithm" type="AlgorithmType"/> <xs:complexType name="AlgorithmType"> <xs:annotation> <xs:documentation> Cette structure représente un algorithme de calcul complexe. L'algorithme est décrit par un résumé et éventuellement par un texte plus détaillé décrivant Ses objectifs et son mode de fonctionnement. L'algorithme prend comme entrée un ensemble de paramétres d'entrée, et évalue, en se servant des formules et des tableaux définis, un ensemble de résultats. </xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="description" type="ComplexDescriptionType"/> </xs:sequence> <xs:attribute name="name" type="xs:string" use="required"/> <!-- Algorithm structure --> <!-- Algorithm attribute fields --> </xs:complexType> <xs:complexType name="ComplexDescriptionType"> <xs:annotation> <xs:documentation> Une description complexe comprend un résumé, et éventuellement un texte descriptif plus complet. </xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="summary" type="InternationalizedString"/> <xs:element name="details" type="InternationalizedString" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="InternationalizedString"> <xs:annotation> <xs:documentation> Un ensemble d'un ou de plusieurs textes. Chaque textes correspond à la traduction d'un texte de base dans une langue donnée. Si aucune langue n'est précisée, la langue par défaut sera utilisée. </xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="label" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="lang" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <!-- <xs:sequence> <xs:element name="label" minOccurs="1" maxOccurs="unbound"> <xs:extension base="xs:string"> <xs:attribute name="lang" type="xs:string" use="optional"/> </xs:extension> </xs:element> </xs:sequence> --> </xs:complexType> </xs:schema>
