gpt4 book ai didi

java - 如何更改 Castor 映射以从 XML 输出中的元素中删除 "xmlns:xsi"和 "xsi:type"属性?

转载 作者:数据小太阳 更新时间:2023-10-29 02:04:24 25 4
gpt4 key购买 nike

如何更改 Castor 映射

<?xml version="1.0"?>
<!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN"
"http://castor.org/mapping.dtd">

<mapping>
<class name="java.util.ArrayList" auto-complete="true">
<map-to xml="ArrayList" />
</class>
<class name="com.db.spgit.abstrack.ws.response.UserResponse">
<map-to xml="UserResponse" />
<field name="id" type="java.lang.String">
<bind-xml name="id" node="element" />
</field>
<field name="deleted" type="boolean">
<bind-xml name="deleted" node="element" />
</field>
<field name="name" type="java.lang.String">
<bind-xml name="name" node="element" />
</field>
<field name="typeId" type="java.lang.Integer">
<bind-xml name="typeId" node="element" />
</field>
<field name="regionId" type="java.lang.Integer">
<bind-xml name="regionId" node="element" />
</field>
<field name="regionName" type="java.lang.String">
<bind-xml name="regionName" node="element" />
</field>
</class>
</mapping>

抑制 XML 输出元素中的 xmlns:xsixsi:type 属性?例如,而不是输出 XML

<?xml version="1.0" encoding="UTF-8"?> 
<ArrayList>
<UserResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="UserResponse">
<name>Tester</name>
<typeId>1</typeId>
<regionId>2</regionId>
<regionName>US</regionName>
</UserResponse>
</ArrayList>

我更愿意

<?xml version="1.0" encoding="UTF-8"?> 
<ArrayList>
<UserResponse>
<name>Tester</name>
<typeId>1</typeId>
<regionId>2</regionId>
<regionName>US</regionName>
</UserResponse>
</ArrayList>

这样元素名称就意味着 xsi:type

最佳答案

将 Castor Marshaller 属性 suppressXSIType 设置为 false:

Marshaller marshaller = new Marshaller(w);
marshaller.setSuppressXSIType(true);

参见 Configuring the MarshallerCastor 1.3.1 Reference Documentation . (请注意,表 1.10 编码器属性仅列出属性 suppressNamespaces,但方法 setSuppressNamespaces()setSuppressXSIType() 都存在于类 Marshaller 中。)

关于java - 如何更改 Castor 映射以从 XML 输出中的元素中删除 "xmlns:xsi"和 "xsi:type"属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3007706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com