- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作网络服务,但我遇到了两种情况。
xsd 文件有两种类型,第一种是:
<xsd:element name="signupRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="email" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element
<xsd:element name="signupResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="signup" type="tns:Signup"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="Signup">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Success"/>
<xsd:enumeration value="DuplicateEmail"/>
</xsd:restriction>
</xsd:simpleType>
在这种情况下,jaxb 会生成signuprequest、signupresponse 和signup 类,因此我可以轻松地创建服务,例如在这种情况下:
public Signup signupResponse(String name,String mobile);
但是如果我像这样直接设置signupresponse:
<xsd:element name="signupResponse">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Success"/>
<xsd:enumeration value="DuplicateMail"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
jaxb仅生成sinuprequest类,不生成signupresponse和signup类,而是像这样在ObjectFactory类中生成条目
private final static QName _SignupResponse_QNAME = new QName("http://www.example.com", "signupResponse");
方法是:
@XmlElementDecl(namespace = "http://www.example.com", name = "signupResponse")
public JAXBElement<String> createSignupResponse(String value) {
return new JAXBElement<String>(_SignupResponse_QNAME, String.class, null, value);
所以请指导我如何为这些类型的 xsd 架构提供服务。
最佳答案
元素 signupResponse
被视为 String.class
的简单类型,因此您没有生成 Class。
如果您想生成枚举,您应该更改 XSD
<xs:element name="signupResponse" type="signupResponse" />
<xs:simpleType name="signupResponse">
<xs:restriction base="xs:string">
<xs:enumeration value="Success" />
<xs:enumeration value="DuplicateMail" />
</xs:restriction>
</xs:simpleType>
为了生成
@XmlType(name = "signupResponse")
@XmlEnum
public enum SignupResponse {
@XmlEnumValue("Success")
SUCCESS("Success"),
@XmlEnumValue("DuplicateMail")
DUPLICATE_MAIL("DuplicateMail");
private final String value;
SignupResponse(String v) {
value = v;
}
public String value() {
return value;
}
public static SignupResponse fromValue(String v) {
for (SignupResponse c: SignupResponse.values()) {
if (c.value.equals(v)) {
return c;
}
}
throw new IllegalArgumentException(v);
}
}
和对象工厂
@XmlElementDecl(namespace = "http://www.example.com", name = "signupResponse")
public JAXBElement<SignupResponse> createSignupResponse(SignupResponse value) {
return new JAXBElement<SignupResponse>(_SignupResponse_QNAME, SignupResponse.class, null, value);
}
关于java - jaxb 生成的 ObjectFactory 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26816798/
我需要从 java 客户端将数据协定传递到我的 wcf web 服务。数据契约(Contract)有 2 个归档,都是字符串。创建代理后,我正在尝试的代码如下 FileTransfer fs = ne
尝试实例化 ObjectFactory 时,我在 Eclipse 中收到以下编译错误: cannot instantiate the type objectfactory 此编译错误在以下行抛出: o
我正在尝试在来自第 3 方的 WSDL 中执行 wsimport(通过 netbeans 6.9.1),但它一直在 JAXB 中生成此错误: Two declarations cause a coll
我定义了以下 ObjectFactory: @XmlRegistry public class ObjectFactory { public Dogs createDogs() {
我有一个使用默认值的 WSDL 文件,我想生成 ObjectFactory 类,这些类使用 CXF 创建具有这些默认值的方法。例如,我有一个这样定义的对象
我正在使用 docx4j 创建一个 Word 文档,并且需要设置“标题”的样式,但是,我找不到执行此操作的正确函数。 private static P createIt() { org.doc
我尝试在结构图中注册命名实例。但是我的试验没有成功。 正确的做法是什么? 目前我是这样做的: IService bus = CreateInstanceOfServiceBus(); ObjectFa
使用 AngularFire,我正在扩展对象工厂,以便封装数据并允许特定功能,如 official tutorial 中所述。 .我有一个如下的数据结构: { 'articles': {
我正在创建一个 JAXBElement具有 ObjectFactory 的元素. 该对象是使用 null 创建的值,因为该字段的架构表明它有一个 nillable属性。 在编码到 xml 期间,输出文
我有两个 xsd 导入到主 xsd 中。两者具有相同的元素,但命名空间不同。因此,我为第二个 xsd(B.xsd) 创建了自定义绑定(bind)。我仍然收到“两个声明导致 ObjectFactory
我正在使用 JAXB 为导入其他模式的模式生成类。我正在使用 maven 并将 maven-jaxb2 插件配置为使用依赖项作为情节,跳过为导入的模式生成类。 然而,JAXB 不断为导入的模式生成 O
我使用 StructureMap 实现了接口(interface)注入(inject),如下所述。 ObjectFactory.Initialize(x => { x.For().Use(); });
要在 GlassFish Server 开源版 3.1.1(内部版本 12)中部署: Caused by: java.security.PrivilegedActionException: com.s
我有一个大型应用程序,它使用使用 ObjectFactory.GetInstance() 获取实例的旧方法。 现在我想将应用程序转移到使用构造函数注入(inject)注入(inject)依赖项的更正确
这是重现问题的简单测试,这是整个项目中的单个类,没有其他引用: [TestFixture] public class ObjectFactoryTests { [Test] publi
在使用最新的 StructureMap 版本 (3.1.6.191) 升级我们的解决方案后,我收到了很多过时的警告。这些警告来自 StructureMap,其中 ObjectFactory 类将在未来
我正在尝试制作网络服务,但我遇到了两种情况。 xsd 文件有两种类型,第一种是:
我正在开发一个工厂,它可以使用 Class 参数实例化 Skill 类型的对象。该工厂的代码是: public static final class AbilityFactory { priv
我有一个 XSD 选择,它们都是 javax.xml.datatype.XMLGregorianCalendar 类型。按照建议,我使用了 ObjectFactory 和 JAXBElement 来区
我们已经在我们的系统中使用 JAXB 2.1 很长时间了。我们有一个使用 Ant 构建的平台,并生成一堆部署在 OSGi 运行时中的包。我们使用 Java SE 6。 我们在构建过程中使用 JAXB
我是一名优秀的程序员,十分优秀!