当前位置: 首页 > 知识库问答 >
问题:

如何在Java包信息中复制NamespaceURI声明

南宫奇思
2023-03-14

我定义了一个package-info.java类,我需要生成一个xml文件,其中包含这里定义的所有xmlns:

@javax.xml.bind.annotation.XmlSchema(namespace = "dian:gov:co:facturaelectronica:NominaIndividual", 
    elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED, xmlns = {
        @XmlNs(prefix = "", namespaceURI = "dian:gov:co:facturaelectronica:NominaIndividual"),
        @XmlNs(prefix = "ds", namespaceURI = "http://www.w3.org/2000/09/xmldsig#"),
        @XmlNs(prefix = "ext", namespaceURI = "urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"),
        @XmlNs(prefix = "cbc", namespaceURI = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"),
        @XmlNs(prefix = "cac", namespaceURI = "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"),
        @XmlNs(prefix = "xades", namespaceURI = "http://uri.etsi.org/01903/v1.3.2#"),
        @XmlNs(prefix = "xades141", namespaceURI = "http://uri.etsi.org/01903/v1.4.1#"),
        @XmlNs(prefix = "xs",  namespaceURI = "http://www.w3.org/2001/XMLSchema-instance"),
        @XmlNs(prefix = "xsi", namespaceURI = "http://www.w3.org/2001/XMLSchema-instance")})
        
package com.sifactura.nomina.imports.dian.gov.co.facturaelectronica.nominaindividual;

import javax.xml.bind.annotation.XmlNs;

在生成的xml中,前缀xs将被删除。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<NominaIndividual SchemaLocation="" 
    xmlns="dian:gov:co:facturaelectronica:NominaIndividual" 
    xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" 
    xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" 
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#" 
    xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" 
    xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" 
    xmlns:xades141="http://uri.etsi.org/01903/v1.4.1#" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="dian:gov:co:facturaelectronica:NominaIndividual NominaIndividualElectronicaXSD.xsd">

我假设因为namespaceURI它被定义了两次,但我需要两个命名空间。有没有任何配置可以保持所有XmlN前缀的定义?

编辑:21/03/2022 我最终以编程方式添加了该命名空间:

Node nodeNs = document.getDocumentElement();
        ((Element)nodeNs).setAttributeNS("http://www.w3.org/2000/xmlns/",
                   "xmlns:xs", "http://www.w3.org/2001/XMLSchema-instance");

共有1个答案

壤驷鸿
2023-03-14

编辑:2022年3月21日,我最终以编程方式添加了该命名空间

Node nodeNs = document.getDocumentElement();
((Element)nodeNs).setAttributeNS("http://www.w3.org/2000/xmlns/",
               "xmlns:xs", "http://www.w3.org/2001/XMLSchema-instance");
 类似资料:
  • 在航站楼如何做到这一点?

  • 我对Java和log4j2很陌生,所以很抱歉提出这个可能很奇怪的问题。我的问题如下。我编写了一个使用log4j2进行日志记录的应用程序。程序分析数据并在给定字符串无法按需要解析的情况下写入警告。有时程序会收到许多意外的字符串,因此它会一直记录相同的错误消息。所以,问题是,如何避免重复记录相同的错误消息。例如,为了在日志文件中看到2000次相同的错误消息,我希望在日志文件中有一个提示,这个错误消息被

  • 问题内容: 如何在Java中复制对象? 问题答案: 创建一个副本构造函数: 每个对象还有一个克隆方法,可用于复制对象,但不要使用它。创建类和执行不正确的克隆方法太容易了。

  • 我有一个目标C类 但是如何在Swift语言中包含这一点呢?

  • 问题内容: 我需要制作一个副本,`HashMap<Integer, List List List `原件中。 如果我正确理解,这两种方法只会创建浅拷贝,这不是我想要的: 我对吗? 除了遍历所有键和所有列表项并手动复制之外,还有更好的方法吗? 问题答案: 没错,浅表副本不能满足您的要求。它将具有原始地图中的副本,但这些副本将引用相同的对象,因此对from 的修改将出现在from的对应内容中。 在Ja

  • 问题内容: 我有一个想要导出高分辨率(或更确切地说是高像素密度?)图像以进行打印的应用程序-例如,我希望以每英寸250点(DPI)的速度打印图像,而不是默认值,据我了解是72 DPI。 我正在使用带有Graphics2D对象的BufferedImage绘制图像,然后使用ImageIO.write()保存图像。 知道如何设置DPI吗? 问题答案: Kurt的答案说明了这一点,但我仍然花了一些时间才能