尝试使用JAXB注释发送和xml文件,但我看到节点具有以下格式:
<:subject xmlns="http://www..." xmlns:atom="http://www.w3.org/2005/atom">
<:data>maths<:data>
</:subject>
而不是:
<subject xmlns="http://www..." xmlns:atom="http://www.w3.org/2005/atom">
<data>maths<data>
</subject>
我无法理解为什么会这样。从哪里插入:符号和为什么? Ť
My model has this form:
@XmlRootElement(name="subject")
@XmlAccessorType(XmlAccessType.FIELD)
public class Registration {
private String data;
get/set
}
我的package-info.java:
@javax.xml.bind.annotation.XmlSchema (
namespace="http://www..",
elementFormDefault=XmlNsForm.QUALIFIED,
xmlns = {
@javax.xml.bind.annotation.XmlNs( prefix=" ", namespaceURI="http://www..."),
@javax.xml.bind.annotation.XmlNs( prefix="atom" ,namespaceURI="http://www.w3.org/2005/atom")
})
package mypackage.affil;
import javax.xml.bind.annotation.XmlNsForm;
我的观点:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ page language="java" contentType="text/html"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<title>Insert title here</title>
</head>
<body>
<h1>Create New Person</h1>
<c:url var="takeinto" value="/takedata" />
<form:form modelAttribute="takedataAttribute" method="POST" action="${takeinto}">
<table>
<tr>
<td><form:label path="data">Affiliation</form:label></td>
<td><form:input path="data"/></td>
</tr>
任何人都可以告诉我为什么这个符号会出现吗?
答案 0 :(得分:0)
import
声明之后输入正确的package
语句来完成:
@XmlSchema (
namespace="http://www..",
elementFormDefault=XmlNsForm.QUALIFIED,
xmlns = {
@XmlNs( prefix=" ", namespaceURI="http://www..."),
@XmlNs( prefix="atom" ,namespaceURI="http://www.w3.org/2005/atom")
})
我猜这是prefix
使用一个空字符串而QUALIFIED
使用elementFormDefault
的组合。试试这个:
@XmlSchema(
namespace="http://www..",
elementFormDefault=XmlNsForm.UNQUALIFIED,
xmlns = {
@XmlNs(prefix="atom", namespaceURI="http://www.w3.org/2005/atom")
})
即UNQUALIFIED
,仅为您想要合格的部分提供xmlns
。你可能需要在@XmlElement
标签上指定命名空间(文档有点不清楚)所以我还建议将其重构为接口中的常量;这也使事情变得更加清晰。