【发布时间】:2014-03-24 16:04:24
【问题描述】:
我正在为我的公司开发一个 java 应用程序,其中包括一个 XML,我有一个模式作为输入。
IDE:NetBeans 8.0 Java:JDK 1.6(我知道,我知道...)
在模式中,其中一种元素类型有两个需要的属性:
<xs:complexType name="InsertType">
<xs:attribute name="ID" type="NameType" use="required" />
<xs:attribute name="Priority" type="xs:int" use="required" />
</xs:complexType>
现在为这个复杂类型生成的类如下所示:
public class InsertType {
@XmlAttribute(name = "ID")
protected String id;
@XmlAttribute(name = "Priority")
protected BigInteger priority;
...
}
除了 XML 属性名称的命名约定(我刚刚得到这个架构,命名约定只是我的反馈主题之一),为什么我在这里将“BigInteger”作为“优先级”的数据类型? 我收到的原始模式看起来像“优先级”
<xs:attribute name="Priority" type="xs:integer" use="optional">
所以我可以看到为什么 xs:integer 加上“可选”会触发“BigInteger”生成,但我已经将类型更改为“xs:int”并使用为必需,我收集到的它相当于“minOccurs='1 '" 这将(希望)解决一个元素的问题。
有人知道我接下来应该研究什么吗?我在这里不知所措,我发现的谷歌点击都指向使用“xs:int”而不是“xs:integer”和“minOccurs='1'”。
谢谢
编辑: 我忘了提到,这可能是必不可少的,绑定是从两个模式创建的,一个包括另一个。 第一个或主要模式描述了 XML 的整体架构。第二个主要包括所有使用的类型定义。 由于第一个包含类型定义以及这两者之间的拆分是不必要的。 但这和上面提到的问题有关系吗?
【问题讨论】:
-
是否在任何地方定义了 Jaxb 绑定定义?
-
在我的 netbeans 项目中,是的。它指向主模式。在 xml 模式中没有提到 jaxb。