2014-02-28 120 views
0

我正在使用需要XML並返回結果(顯然)的Web服務。XML元素未聲明

林發送此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' 元素未聲明

- UPDATE ---

我使用到的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」,或者我suppo我正在做。但我不知道爲什麼「nomina」被宣佈爲「nom」。

「DOC」 是 「XMLObject組成」 從XMLBeans的

的實施--update ---

嗨再次,我現在這個生成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

+0

你是否在某處聲明瞭nom:namespace?我在那裏看不到它 –

+0

您正在驗證的XML模式不希望看到具有該名稱空間的元素。查看模式以找出原因。 – keshlam

+0

問題是諾米娜應該是諾米娜,但我不知道爲什麼會這樣。 – rafuru

回答

0

我知道的是,你必須在「Comprobante」標籤中設置這個元素 xmlns:xsi =「http://www.w3.org/2001/XMLSchema-instance」xmlns:cfdi =「http:// www.sat.gob.mx/cfd/3" 的xmlns:nomina = 「http://www.sat.gob.mx/nomina」

我希望這可以幫助你,

我的問題是我必須手動添加它會導致如果我在代碼中執行它我得到 xmlns:nomina = quothttp://www.sat.gob.mx/nominaquote 而不是 xmlns:nomina =「http://www.sat。 gob.mx/nomina「 如果您對此有任何評論,我將不勝感激。

問候

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"

問候!