gpt4 book ai didi

java - 复杂类型的 JAXB 值

转载 作者:行者123 更新时间:2023-11-29 03:56:55 24 4
gpt4 key购买 nike

**编辑 - 最后我删除了抽象扩展以使它起作用,然后 Blaise 下面的答案起作用了

你好。
我的架构中有一个复杂的类型:

<xs:complexType name="AbstractWorkflow" abstract="true">
<xs:attribute name="id" type="xs:ID" use="required"/>
</xs:complexType>
<xs:complexType name="ProcessWorkflow" mixed="true">
<xs:complexContent>
<xs:extension base="AbstractWorkflow"/>
</xs:complexContent>
</xs:complexType>

要解码的输入是这个

<ns1:Workflow stb:id="Workflow" xsi:type="ns1:ProcessWorkflow">workflowHTML.xml</ns1:Workflow>

但是当我这样做时,我无法选择从类中访问值:workflowHTML.xml从 xjc 生成的。这是生成的 AbstractWorkflow 类的开始 是否有一个我可以在此类中声明的注释,它扩展了一个抽象类,以指定它是一个本身带有值的元素?不应该吗?被声明为 FIELD 或?

编辑它是我需要实现读取值的扩展类,而不是我原来在这里的抽象类。

@XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)
@XmlType(name = "ProcessWorkflow")
public class ProcessWorkflow
extends AbstractWorkflow
{



}

感谢阅读。

最佳答案

我相信您正在寻找 @XmlValue 注释。

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
public class Foo {

@XmlAttribute
private int id;

@XmlValue
private String value;

}

以上对应于以下 XML 模式:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="foo" type="foo"/>

<xs:complexType name="foo">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:int" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>

像这样的 XML:

<foo id="123">Some Value</foo>

关于java - 复杂类型的 JAXB 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5883763/

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