Exportar para xml, validando com xsd no JAXB

Pessoal,

estou com dificuldade para exportar meus dados para o xml, validando com um xsd. O xsd foi criado utilizando o editor do netbeans 6, as classes java foram criadas utilizando o utilitário do JAXB: xjc.bat. Eu não deveria ter problemas já que as classes java refletem os xsd, mas eu tenho o seguinte erro:

Line:Col[-1:-1]:cvc-elt.1: Cannot find the declaration of element 'root'.
javax.xml.bind.MarshalException
 - with linked exception:
[org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'root'.]
        at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:331)
        at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:257)
        at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:75)
        at br.com.kyros.resolucao447.ExcelParser.exportToXML(ExcelParser.java:362)
        at br.com.kyros.resolucao447.ExcelParser.exportarXMLRBR(ExcelParser.java:175)
        at br.com.kyros.resolucao447.ExcelParser.readXLS(ExcelParser.java:87)
        at br.com.kyros.resolucao447.ExcelParser.<init>(ExcelParser.java:66)
        at br.com.kyros.resolucao447.ExcelParser.main(ExcelParser.java:379)
Caused by: org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'root'.
        at com.sun.org.apache.xerces.internal.jaxp.validation.Util.toSAXParseException(Util.java:109)
        at com.sun.org.apache.xerces.internal.jaxp.validation.ErrorHandlerAdaptor.error(ErrorHandlerAdaptor.java:104)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:382)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:316)
        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1944)
        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:705)
        at com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorHandlerImpl.startElement(ValidatorHandlerImpl.java:335)
        at org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:527)
        at com.sun.xml.bind.v2.runtime.output.SAXOutput.endStartTag(SAXOutput.java:124)
        at com.sun.xml.bind.v2.runtime.output.ForkXmlOutput.endStartTag(ForkXmlOutput.java:102)
        at com.sun.xml.bind.v2.runtime.XMLSerializer.endAttributes(XMLSerializer.java:302)
        at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializer.java:588)
        at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:312)
        at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:490)
        at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328)
        ... 7 more

eis o meu xsd:

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="http://xml.netbeans.org/schema/RBR"
            xmlns:tns="http://xml.netbeans.org/schema/RBR"
            elementFormDefault="unqualified">
    <xsd:element name="root">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="Cabecalho" maxOccurs="unbounded">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="Itens" minOccurs="1" maxOccurs="unbounded">
                                <xsd:complexType>
                                    <xsd:attribute name="Qualificacao" type="xsd:string" use="required"/>
                                    <xsd:attribute name="EntidadeRespGuarda" type="xsd:string" use="required"/>
                                    <xsd:attribute name="Vinculacao" type="xsd:string" use="required"/>
                                    <xsd:attribute name="NumPatrimonio" type="xsd:string" use="required"/>
                                    <xsd:attribute name="SBNPatrimonio" type="xsd:string" use="optional" />
                                    <xsd:attribute name="DataIncorporacao" type="xsd:dateTime" use="required" />
                                    <xsd:attribute name="Descricao" type="xsd:string" use="required" />
                                    <xsd:attribute name="NomeFabricante" type="xsd:string" />
                                    <xsd:attribute name="Modelo" type="xsd:string" />
                                    <xsd:attribute name="Serie" type="xsd:string" />
                                    <xsd:attribute name="Quantidade" type="xsd:long" use="required" />
                                    <xsd:attribute name="Referencia" type="xsd:int" use="required" />
                                    <xsd:attribute name="Localizacao" type="xsd:string" use="required" />
                                    <xsd:attribute name="Numero" type="xsd:int" />
                                    <xsd:attribute name="Bairro" type="xsd:string" />
                                    <xsd:attribute name="Complemento" type="xsd:string" />
                                    <xsd:attribute name="UF" type="xsd:string" use="required" />
                                    <xsd:attribute name="CEP" type="xsd:long" />
                                    <xsd:attribute name="CodigoMunicipio" type="xsd:long" />
                                    <xsd:attribute name="CustoAquisicao" type="xsd:double" use="required" />
                                    <xsd:attribute name="DepreciacaoAcumulada" type="xsd:double" use="required" />
                                    <xsd:attribute name="ValorResidual" type="xsd:double" use="required" />
                                    <xsd:attribute name="PatrimonioPrestadora" type="xsd:string" use="required"/>
                                    <xsd:attribute name="Onerado" type="xsd:string" use="required" />
                                    <xsd:attribute name="EstadoConservacao" type="xsd:int" use="required" />
                                    <xsd:attribute name="NumeroContaRBR" type="xsd:string" use="required" />
                                    <xsd:attribute name="NumeroContaEmpresa" type="xsd:string" />
                                    <xsd:attribute name="DescricaoContaEmpresa" type="xsd:string" />                                    
                                </xsd:complexType>
                            </xsd:element>
                        </xsd:sequence>
                        <xsd:attribute name="TipoArquivo" type="xsd:int"/>
                        <xsd:attribute name="AnoReferencia" type="xsd:int"/>
                        <xsd:attribute name="NumeroContratoAnatel" type="xsd:long"/>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>

este é o código de exportação, quem souber de algo

    private void exportToXML(Collection col, String xsdFileName, String xmlFileName){
        try{
            //DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            
            
            JAXBContext context = JAXBContext.newInstance("br.com.kyros.resolucao447.rbr");
            SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
            Schema schema = schemaFactory.newSchema(new File(xsdFileName));
            
            Marshaller marsh = context.createMarshaller();
            marsh.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, new Boolean(true));
            marsh.setEventHandler(new ValidationEventHandler() {
						// allow unmarshalling to continue even if there are errors
						public boolean handleEvent(ValidationEvent ve) {
							// ignore warnings
							if (ve.getSeverity() != ValidationEvent.WARNING) {
								ValidationEventLocator vel = ve.getLocator();
								System.out.println("Line:Col[" + vel.getLineNumber() +
										":" + vel.getColumnNumber() +
										"]:" + ve.getMessage());
							}
							return false;
						}
					});
            marsh.setSchema(schema);
            marsh.marshal(col.iterator().next(), new FileOutputStream("c:\\" + xmlFileName));
        }
        catch (JAXBException jaxbe){
            jaxbe.printStackTrace();
        }
        catch (SAXException saxe){
            saxe.printStackTrace();
        }
        catch (IOException ioe){
            ioe.printStackTrace();
        }
    }

vc deve já ter copilado com o xjc né
ele ira gerar uma classe entaum conforme a mensagen do erro esta faltando vc declarar o elemento raiz

cole essa anotação encima da classe gerada pelo xjc

exemplo:

@XmlRootElement
public class SuaClasseRaiz(){
}

desculpa ai reabrir o topico não vi a data …
mais como dificuldade com JAXB esta na moda (rsrs) achei que era atual