在我的应用程序中,用户上传了几个 XML。很少有上传的 XML 不包含命名空间标记,而其他的则包含它。我希望能够支持两者的上传。JAXB 对前者给予例外。
我希望能够使命名空间成为可选的,即支持这两个文件。
有效的 XML
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<ns2:transforms xmlns:ns2="http://www.mynamesapace.com/xmlbeans/connectorconfig">
失败的 XML
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<transforms>
这是我解组 XML 的方式
JAXBContext jaxbContext = JAXBContext.newInstance(Transforms.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
transforms = (Transforms) jaxbUnmarshaller.unmarshal(file);
这是我的pojo
@XmlRootElement(name = "transforms", namespace =
"http://www.mynamesapace.com/xmlbeans/connectorconfig")
public class Transforms implements ConfigDiffable<Transforms,
ChangedTransforms> {
.....
更新:
如果我删除
namespace =
"http://www.mynamesapace.com/xmlbeans/connectorconfig"
没有命名空间的 XML 开始工作
温温酱
相关分类