我将使用 UUID
在 Java 代码中创建 ID
字段。我需要从我的 Book
类创建 xml 并根据下面的 XSD
对其进行验证。
我的 XSD
看起来像这样
<xsd:complexType name="Book" >
<xsd:sequence>
<xsd:element name="Publisher" type="ns:PublisherType"/>
<xsd:element name="MessageId" type="ns:GUID"/>
<xsd:element name="Author" type="xsd:string"/>
<xsd:element name="Title" type="xsd:string"/>
<xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"
namespace="##other"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="GUID">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"/>
</xsd:restriction>
</xsd:simpleType>
我的 Java 类看起来像这样
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
@XmlType(name="Book", propOrder = {"publisher", "messageId", "author", "title"
})
@Getter
@Setter
public class Book {
private Publisher publisher;
private GUID messageId;
private String author;
private String title;
}
我应该如何实现我的 GUID
类以返回 UUID.randomUUID()
或任何其他方式来传递 XSD
?
最佳答案
看看this example ,基本上你必须用 @XmlValue
public class GUID {
private final UUID uuid;
public GUID() {
this.uuid = UUID.randomUUID();
}
@XmlValue
public String getValue(){
return uuid.toString();
}
}
关于java - 如何使用 JAXB 在我的 Java 代码中创建 UUID 以传递 XSD 模式限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54502078/