siento por el retraso .... Gracias por su ayuda, ahora pueden mostrar la schemaLocation, pero todavía no tienen el XML como me gustaría. Tal vez no me explico el escenario correctamente desde el principio, voy a tratar de nuevo:
tengo 2 esquemas: CommonDataTypeCairo.xsd y StationNetwork.xsd que importa la anterior de utilizar estructuras comunes.
El CommonDataTypeCairo.xsd comienza de la siguiente manera:
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:com="http://es.indra.transporte.common"
targetNamespace="http://es.indra.transporte.common"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<complexType name="head">
<sequence>
<element name="formatVersion" type="integer"/>
<element name="confVersion" type="integer"/>
<element name="generationDate" type="dateTime"/>
<element name="activationDate" type="dateTime"/>
</sequence>
</complexType>
Y el StationNetwork.xsd:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:com="http://es.indra.transporte.common"
xmlns="http://es.indra.transporte.configuration"
targetNamespace="http://es.indra.transporte.configuration"
lementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="http://es.indra.transporte.common"
schemaLocation="CommonDataTypeCairo.xsd"/>
que tienen la cota c java lasses en diferentes paquetes, así que tengo diferentes archivos package-info.java. Para el esquema StationNetwork tengo:
@javax.xml.bind.annotation.XmlSchema(
namespace = "http://es.indra.transporte.configuration"
)
package es.indra.transporte.central.thalesinterface.topology.beans;
y para el esquema común:
@javax.xml.bind.annotation.XmlSchema(
namespace = "http://es.indra.transporte.common",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
attributeFormDefault = javax.xml.bind.annotation.XmlNsForm.UNQUALIFIED
)
package es.indra.transporte.central.thalesinterface.common.beans;
El StationNetwork.xml consigo con esta configuración es:
<ns3:stationNetwork xmlns:ns2="http://es.indra.transporte.common"
xmlns:ns3="http://es.indra.transporte.configuration"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://es.indra.transporte.configuration StationNetwork.xsd">
<head>
<ns2:formatVersion>1</ns2:formatVersion>
<ns2:confVersion>1</ns2:confVersion>
<ns2:generationDate>2010-12-22T00:00:00Z</ns2:generationDate>
<ns2:activationDate>2010-12-21T09:07:25Z</ns2:activationDate>
</head>
que no es válida, y la salida que quiero es:
<stationNetwork xmlns:ns2="http://es.indra.transporte.common"
xmlns="http://es.indra.transporte.configuration"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://es.indra.transporte.configuration StationNetwork.xsd">
<head>
<ns2:formatVersion>1</ns2:formatVersion>
<ns2:confVersion>1</ns2:confVersion>
<ns2:generationDate>2010-12-22T00:00:00Z</ns2:generationDate>
<ns2:activationDate>2010-12-21T09:07:25Z</ns2:activationDate>
</head>
sin prefijo NS3, pero no sé cómo conseguirlo. Podría ser genial si puedes ayudar con esto.
¿Cómo puedo establecer los xmlns en el nodo raíz con anotaciones? Regreso de mi método @Get con Response.ok (entidad) .build(), y no estoy usando el Marshaller directamente. – neu242
No importa, @XmlSchema en package-info.java funcionó muy bien. – neu242