Saltar al contenido

Eliminar ns2 como espacio de nombres predeterminado prefix

Esta es la respuesta más correcta que encomtrarás aportar, pero obsérvala pausadamente y valora si se puede adaptar a tu proyecto.

Solución:

Todo lo que necesita hacer 2 es cuando abre un nuevo paquete, seleccione crear información del paquete en la información del paquete, agregue la siguiente anotación o cámbiela según sea necesario.

@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.sitemaps.org/schemas/sitemap/0.9", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED, xmlns =  @javax.xml.bind.annotation.XmlNs(namespaceURI = "http://www.sitemaps.org/schemas/sitemap/0.9", prefix = "") )

Esto eliminará el ns2 prefix

Lo más probable es que tenga varios espacios de nombres en la respuesta. Esto utilizará la convención predeterminada de crear prefijos de espacio de nombres ns# y uno de ellos se convierte en xmlns sin un prefix. Si quieres controlar esto puedes hacer lo siguiente:

NamespacePrefixMapper mapper = new NamespacePrefixMapper() 
        public String getPreferredPrefix(String namespaceUri, String suggestion, boolean requirePrefix) 
            if ("http://namespace".equals(namespaceUri) && !requirePrefix)
                return "";
            return "ns";
        
    ;
    marshaller.setProperty("com.sun.xml.bind.namespacePrefixMapper", mapper);
    marshaller.mashal....

Esto establecerá el http://namespace como el xmlns predeterminado siempre y use ns# para todos los demás espacios de nombres al ordenar. También puede darles prefijos más descriptivos si lo desea.

A partir de JDK6u18, la técnica NamespacePrefixMapper ya no se utiliza.

Valoraciones y reseñas

Te invitamos a reafirmar nuestra faena dejando un comentario y dejando una valoración te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *