相对之前写的进行简化和优化 Jaxb工具类
生产版,使用JDK自带xjc命令从xsd生成的java类,包含了xsd验证,安全转换xml.
xjc Xx.xsd -p com.taylor.jaxb
com.taylor.jaxb为生成的java类的包名
或者
java -Dfile.encoding=UTF-8 -cp "C:\Program Files\Java\jdk1.8.0_191\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p com.taylor.jaxb 1-Xx.xsd -npa -no-header -nv
需要增加依赖
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.2.0</version>
</dependency>
package com.taylor.xml.customs.datahub;
import java.io.*;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import javax.xml.XMLConstants;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.validation.SchemaFactory;
import com.sun.xml.bind.marshaller.NamespacePrefixMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.jaxen.JaxenException;
import org.jaxen.XPath;
import org.jaxen.dom4j.Dom4jXPath;
import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;
import org.springframework.util