未声明XML元素

时间:2014-02-28 22:26:48

标签: java xml

我正在使用需要XML并返回结果的Web服务(显然)。

我发送此XML

<?xml version="1.0" encoding="UTF-8"?>
<cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd" version="3.2" folio="76" fecha="2014-02-28T15:01:28.396-07:00" formaDePago="PAGO EN UNA SOLA EXHIBICION" subTotal="100" total="100" metodoDePago="EFECTIVO" LugarExpedicion="CAJEME,SONORA" tipoDeComprobante="ingreso" certificado="SOMECERTIFICATESTRINGHERE">
    <cfdi:Emisor nombre="Software Guru" rfc="XAXX010101000">
        <cfdi:DomicilioFiscal calle="CRUCE CARRETERA DOLORES HIDALGO LEON SAN FELIPE" noExterior="S/N" colonia="AVIACION" localidad="SAN FELIPE" codigoPostal="37600" municipio="SAN FELIPE" estado="GUANAJUATO" pais="MEXICO"/>
        <cfdi:ExpedidoEn calle="CRUCE CARRETERA DOLORES HIDALGO LEON SAN FELIPE" noExterior="S/N" colonia="AVIACION" codigoPostal="37600" municipio="SAN FELIPE" estado="GUANAJUATO" pais="MEXICO"/>
        <cfdi:RegimenFiscal Regimen="PERSONA FISICA CON ACTIVIDAD EMPRESARIAL"/>
    </cfdi:Emisor>
    <cfdi:Receptor rfc="XAXX010101000" nombre="DEMO RFC">
        <cfdi:Domicilio calle="CRUCE CARRETERA DOLORES HIDALGO LEON SAN FELIPE" noExterior="S/N" colonia="AVIACION" codigoPostal="37600" municipio="SAN FELIPE" estado="GUANAJUATO" pais="MEXICO"/>
    </cfdi:Receptor>
    <cfdi:Conceptos>
        <cfdi:Concepto cantidad="8.5" unidad="litros" noIdentificacion="12321321" descripcion="DIESEL" valorUnitario="8" importe="160.8000"/>
    </cfdi:Conceptos>
    <cfdi:Impuestos totalImpuestosTrasladados="13.90000" totalImpuestosRetenidos="0">
        <cfdi:Traslados>
            <cfdi:Traslado importe="13.90000" impuesto="IVA" tasa="16"/>
        </cfdi:Traslados>
    </cfdi:Impuestos>
    <cfdi:Complemento>
        <nom:Nomina xmlns:nom="http://www.sat.gob.mx/nomina" xsi:schemaLocation="http://www.sat.gob.mx/sitio_internet/cfd/nomina/ http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina11.xsd" Version="1.1" RegistroPatronal="SFE20POSICIONES" NumEmpleado="1" CURP="DIRA840412HNTZRN04" TipoRegimen="1" NumSeguridadSocial="04078464789" FechaPago="2014-02-28-07:00" FechaInicialPago="2014-02-28-07:00" FechaFinalPago="2014-02-28-07:00" NumDiasPagados="15" Departamento="Desarrollo" FechaInicioRelLaboral="2014-02-28-07:00" Antiguedad="500" Puesto="Ingeniero" TipoContrato="Base" TipoJornada="Diurna" PeriodicidadPago="Quincenal" SalarioBaseCotApor="231" RiesgoPuesto="2" SalarioDiarioIntegrado="231">
            <nom:Percepciones TotalExento="0" TotalGravado="123">
                <nom:Percepcion Clave="101" Concepto="1er Quincena Noviembre" TipoPercepcion="1" ImporteExento="0" ImporteGravado="123"/>
            </nom:Percepciones>
            <nom:Deducciones>
                <nom:Deduccion Clave="201" Concepto="ISPT" ImporteExento="0" ImporteGravado="200"/>
            </nom:Deducciones>
        </nom:Nomina>
    </cfdi:Complemento>
</cfdi:Comprobante>

但是我遇到了这个错误:'http://www.sat.gob.mx/nomina:Nomina'元素未声明

- 更新---

我正在使用XMLBeans来创建我的XML:

 XmlOptions xmlOptions = new XmlOptions();
        HashMap namespaces = new HashMap();
        namespaces.put("http://www.sat.gob.mx/cfd/3", "cfdi");
        namespaces.put("http://www.sat.gob.mx/cfd/nomina/", "nomina");
        xmlOptions.setSaveSuggestedPrefixes(namespaces);
        xmlOptions.setSavePrettyPrint();
        xmlOptions.setSavePrettyPrintIndent(4);
        xmlOptions.setSaveNamespacesFirst();                   
        doc.save(new File("cfdiNomina.xml"),xmlOptions);

我附加名称空间“nomina”,或者我想我正在做。但我不知道为什么“nomina”被宣布为“nom”。

“doc”是XMLBeans中“XMLObject”的实现

- 更新---

嗨再次,我现在正在生成这个XML:

<?xml version="1.0" encoding="UTF-8"?>
<cfdi:Comprobante xmlns:Nomina="http://www.sat.gob.mx/nomina" xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd" version="3.2" folio="76" fecha="2014-03-03T12:02:22.772-07:00" formaDePago="PAGO EN UNA SOLA EXHIBICION" subTotal="100" total="100" metodoDePago="EFECTIVO" LugarExpedicion="CAJEME,SONORA" tipoDeComprobante="ingreso" certificado="MIIE7TCCA9WgAwIBAgIUMDAwMDEwMDAwMDAyMDI2Njk3MTYwDQYJKoZIhvcNAQEFBQAwggGVMTgwNgYDVQQsAhvGK1tl1B2aU6efaGt1k8CAwEAAaMdMBswDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCBsAwDQYJKoZIhvcNAQEFBQADggEBAJWA/5SZ6Agn7ohOvUZauzlolLICNGYJhjZ0hKIsRFCXWTAJkdhoB5wafoHnSUXuHccbR0tccqfIwm7vZz+vhytPmb//gD5PG0iOiQQNYVDcZ+0kuLoKzBNPJrn/oJQYse+xuDv60wVhMVOM20mqz4k0nvg2xxD545pabTaXjKGiQ7ea6/HDpejrHt/iHh2EeI4E3k7g2mEd+vmRkincfTfgtg+YosutckRotT1qf08zdoXOmY6qNVtXSOv2Up0cGYsqCI+JNBcZFQjfzXnsPc8gLv0OFozK8V7imySagJ2XRajGXBoQsMqn1MSypCXrwSxt5iMTpr9lRDkw02/iMjc=" noCertificado="00002669716" sello="ksyct5bddzkiilxuRR9rVguEyCE6zwvKDn0kiy3Y=">
    <cfdi:Emisor nombre="Software Guru" rfc="XAXX010101000">
        <cfdi:DomicilioFiscal calle="CRUCE CARRETERA DOLORES HIDALGO LEON SAN FELIPE" noExterior="S/N" colonia="AVIACION" localidad="SAN FELIPE" codigoPostal="37600" municipio="SAN FELIPE" estado="GUANAJUATO" pais="MEXICO"/>
        <cfdi:ExpedidoEn calle="CRUCE CARRETERA DOLORES HIDALGO LEON SAN FELIPE" noExterior="S/N" colonia="AVIACION" codigoPostal="37600" municipio="SAN FELIPE" estado="GUANAJUATO" pais="MEXICO"/>
        <cfdi:RegimenFiscal Regimen="PERSONA FISICA CON ACTIVIDAD EMPRESARIAL"/>
    </cfdi:Emisor>
    <cfdi:Receptor rfc="XAXX010101000" nombre="DEMO RFC">
        <cfdi:Domicilio calle="CRUCE CARRETERA DOLORES HIDALGO LEON SAN FELIPE" noExterior="S/N" colonia="AVIACION" codigoPostal="37600" municipio="SAN FELIPE" estado="GUANAJUATO" pais="MEXICO"/>
    </cfdi:Receptor>
    <cfdi:Conceptos>
        <cfdi:Concepto cantidad="8.5" unidad="litros" noIdentificacion="12321321" descripcion="DIESEL" valorUnitario="8" importe="160.8000"/>
    </cfdi:Conceptos>
    <cfdi:Impuestos totalImpuestosTrasladados="13.90000" totalImpuestosRetenidos="0">
        <cfdi:Traslados>
            <cfdi:Traslado importe="13.90000" impuesto="IVA" tasa="16"/>
        </cfdi:Traslados>
    </cfdi:Impuestos>
    <cfdi:Complemento>
        <Nomina:Nomina xsi:schemaLocation="http://www.sat.gob.mx/nomina http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina11.xsd" Version="1.1" RegistroPatronal="SFE20POSICIONES" NumEmpleado="1" CURP="DIRA840412HNTZRN04" TipoRegimen="1" NumSeguridadSocial="04078464789" FechaPago="2014-03-03-07:00" FechaInicialPago="2014-03-03-07:00" FechaFinalPago="2014-03-03-07:00" NumDiasPagados="15" Departamento="Desarrollo" FechaInicioRelLaboral="2014-03-03-07:00" Antiguedad="500" Puesto="Ingeniero" TipoContrato="Base" TipoJornada="Diurna" PeriodicidadPago="Quincenal" SalarioBaseCotApor="231" RiesgoPuesto="2" SalarioDiarioIntegrado="231">
            <Nomina:Percepciones TotalExento="0" TotalGravado="123">
                <Nomina:Percepcion Clave="101" Concepto="1er Quincena Noviembre" TipoPercepcion="1" ImporteExento="0" ImporteGravado="123"/>
            </Nomina:Percepciones>
            <Nomina:Deducciones>
                <Nomina:Deduccion Clave="201" Concepto="ISPT" ImporteExento="0" ImporteGravado="200"/>
            </Nomina:Deducciones>
        </Nomina:Nomina>
    </cfdi:Complemento>
</cfdi:Comprobante>

正如您现在所看到的,我已经宣布了Nomina元素,但我仍然遇到此错误:

'http://www.sat.gob.mx/nomina:Nomina

2 个答案:

答案 0 :(得分:0)

我所知道的是你必须在&#34; Comprobante&#34;标签这个元素 的xmlns:=的xsi&#34; HTTP://www.w3.org/2001/XMLSchema-instance"的xmlns:CFDI =&#34; HTTP://www.sat.gob.mx/cfd/3"  的xmlns:nomina =&#34; HTTP://www.sat.gob.mx/nomina"

我希望这可以帮到你,

我的问题是我必须手动添加它,因为如果我在我得到的代码中这样做 的xmlns:nomina = quothttp://www.sat.gob.mx/nominaquote 代替  的xmlns:nomina =&#34; HTTP://www.sat.gob.mx/nomina" 如果您对此有任何评论,我将不胜感激。

此致

答案 1 :(得分:0)

如果还有人遇到此问题,您应该:

  

xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd http://www.sat.gob.mx/nomina http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina11.xsd"

新版本应该是:

  

xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd http://www.sat.gob.mx/nomina12 http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina12.xsd"

问候!