You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Buenas tardes a todos, espero y alguien me pueda ayudar con el siguiente problema que tengo al querer generar mis Addendas para la versión 3.3 del CFDI. El error es el siguiente
cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'Company'.
Anteriormente se creaban correctamente las Addendas para la versión 3.2, no se que me este faltando para que tome el tag de Company.
La estructura en código para la generación de Addendas es la siguiente:
/**
* Elemento Company
*/
@XmlRootElement(name = "Company")
public static final class Company {
/**
* The transaction.
*/
@XmlElement(name = "Transaccion")
public Transaccion transaccion;
}
/**
* Elemento Transaccion
*/
@XmlRootElement
public static final class Transaccion {
@XmlElement(name = "Campo")
public TransaccionDet campos;
}
/**
* Detalle de transaccion, contenedor de campos
*/
@XmlRootElement
public static final class TransaccionDet extends ArrayList<Campo> {
public void setCampo(Campo c) {
this.add(c);
}
@XmlAttribute(name = "Campo")
public List<Campo> getCampo() {
return this;
}
}
/**
* Clases estaticas que representan la estructura XML para los campos de
* addenda
*/
/**
* Elemento Campo
*/
@XmlRootElement
public static final class Campo {
@XmlAttribute(name = "Descripcion")
public String descripcion;
@XmlAttribute(name = "Valor")
public String valor;
}
Y la lleno con el siguiente método:
private Comprobante.Addenda generaAddenda(mx.bigdata.sat.cfdi.v33.schema.ObjectFactory factory,
int transaccion)
throws Exception {
final Comprobante.Addenda addenda = factory.createComprobanteAddenda();
Company com = new Company(); // Contiene la lista final de campos
Transaccion t = new Transaccion(); // Contiene la lista final de campos
TransaccionDet td = new TransaccionDet(); // Contiene la lista de campos
// Se obtinen las addendas registradas.
final List<AddendaDTO> addendas = daoFac.getAddenda(transaccion);
if (addendas != null) {
for (AddendaDTO ad : addendas) {
Campo cmp = new Campo();
cmp.descripcion = ad.getDescripcion();
String valor = ad.getValor();
if (valor == null) {
cmp.valor = "";
} else {
cmp.valor = valor;
}
td.setCampo(cmp);
}
t.campos = td;
com.transaccion = t;
addenda.getAny().add(com);
System.out.println("Se genero el nodo de Addenda correctamente.");
} else {
System.out.println("No se encontraron datos de Addenda.");
}
return addenda;
}
Además de que cuento con mi archivo jaxb.index que contiene lo siguiente:
CFDv33BO$Company
Si alguien me podría ayudar con este problema, por favor.
De ante mano muchas gracias por su ayuda. 😄
The text was updated successfully, but these errors were encountered:
Si lo estoy haciendo así, lo tengo en el paquete donde se encuentra mi clase encargada de generar el nodo de las Addendas, no se cual podría ser el problema realmente.
Justo hoy obtuve este error, y no puedo agregar la adenda! @aperezc48 pudiste solucionar? como lo hiciste? @hortegag91 me podrias describir un poco mas lo del archivo jaxb.index de tu comentario anterior?
@jjjimenez crea tus beans con anotaciones propias de JAXB. Agregalos a tu comprobante ( comprobante.getAddenda().getAny().add(Bean)). Al crear tu cfdi33 pasa la referencia del paquete que las contiene ( ejemplo new CFDv33(comprobante, "pos.modelo.ventas.facturacion"))
Buenas tardes a todos, espero y alguien me pueda ayudar con el siguiente problema que tengo al querer generar mis Addendas para la versión 3.3 del CFDI. El error es el siguiente
cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'Company'.
Anteriormente se creaban correctamente las Addendas para la versión 3.2, no se que me este faltando para que tome el tag de Company.
La estructura en código para la generación de Addendas es la siguiente:
/**
* Elemento Company
*/
@XmlRootElement(name = "Company")
public static final class Company {
Y la lleno con el siguiente método:
private Comprobante.Addenda generaAddenda(mx.bigdata.sat.cfdi.v33.schema.ObjectFactory factory,
int transaccion)
throws Exception {
final Comprobante.Addenda addenda = factory.createComprobanteAddenda();
Company com = new Company(); // Contiene la lista final de campos
Transaccion t = new Transaccion(); // Contiene la lista final de campos
TransaccionDet td = new TransaccionDet(); // Contiene la lista de campos
Además de que cuento con mi archivo jaxb.index que contiene lo siguiente:
CFDv33BO$Company
Si alguien me podría ayudar con este problema, por favor.
De ante mano muchas gracias por su ayuda. 😄
The text was updated successfully, but these errors were encountered: