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>


Reply via email to