JAXB2的默认XML输出如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<TEST2 xmlns="http://projects/open/2012/UniformProxySystem">
<XXX1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<XXX2>17:02:26</XXX2>
<XXX3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</TEST2>
但我希望如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<TEST2 xmlns="http://projects/open/2012/UniformProxySystem" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<XXX1 xsi:nil="true"/>
<XXX2>17:01:08</XXX2>
<XXX3 xsi:nil="true"/>
</TEST2>
寻找帮助,我正在使用JDK6和JAXB 2.1
答案 0 :(得分:1)
您可以尝试使用@XmlSchema
注释并执行以下操作:
<强> package-info.java 强>
@XmlSchema(
elementFormDefault=XmlNsForm.QUALIFIED,
namespace="http://projects/open/2012/UniformProxySystem",
xmlns={@XmlNs(prefix="xsi",
namespaceURI="http://www.w3.org/2001/XMLSchema-instance")}
)
package com.example;
import javax.xml.bind.annotation.XmlNs;
import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;
答案 1 :(得分:1)
这有效!
@javax.xml.bind.annotation.XmlSchema(
namespace = "http://projects/open/2012/UniformProxySystem",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED
,
xmlns={@XmlNs(prefix="xsi",
namespaceURI="http://www.w3.org/2001/XMLSchema-instance"),
@XmlNs(prefix="",
namespaceURI="http://projects/open/2012/UniformProxySystem")}
)
答案 2 :(得分:0)
您也可以参考answer here获取替代解决方案,特别是如果您的程序中已经有前缀命名空间映射器(如果从XSD生成JAXB类,则也很有用)。
答案 3 :(得分:0)
我将SCHEMA_LOCATION属性添加到marsheller,这有效,但生成另一个attr xsi:schemaLocation =“...”,所以我在生成的Docuemnt对象中手动删除了这个attr。
答案 4 :(得分:0)
在java中,你可以使用
Sitecore.Data.Fields.MultilistField treelistField = Sitecore.Context.Item.Fields["myTreelistFieldName"];
Item [] selectedItems = treelistField.GetItems();
foreach (Item item in selectedItems)
{
string itemName = item.Name;
string displayName = item.DisplayName; // fallback to Name if not set
string title = item["Title"]; // assuming there is a field called Title
string url = LinkManager.GetItemUrl(item);
}