我正在研究一个要求必须定义以下根元素的 xml 标准:
<ClinicalDocument xsi:schemaLocation=”urn:hl7 org:v3 CDA.xsd” xmlns=”urn:hl7-
org:v3” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
现在,我正在使用java.xml.bind
. 通常我注释每个类,然后我使用 Marshallers 和 Unmarshallers 来写入/读取有效的 xml 文件。
“我的想法”是注释以package-info.java
指定xsi:schemaLocation
,xmlns
和xmlns:xsi properties
。ClinicalDocument
但是,我只能插入最后一个属性 ( xmlns:xsi
),而我不知道如何渲染第一个,而且第二个被渲染为xmlns:ns3
.
这是我的代码package-info.java
:
@javax.xml.bind.annotation.XmlSchema (
xmlns = {
@javax.xml.bind.annotation.XmlNs(prefix="",
namespaceURI="urn:hl7-org:v3"),
@javax.xml.bind.annotation.XmlNs(prefix="xsi",
namespaceURI="http://www.w3.org/2001/XMLSchema-instance")
}
)
package foo;
这是我ClinicalDocument.java
在包中的课程foo
:
package foo;
@XmlRootElement(name="ClinicalDocument")
public class ClinicalDocument {....}
最后是我从 Marshaller 中得到的:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ClinicalDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns3="urn:hl7-org:v3">
...
</ClinicalDocument>
所以,我必须在上面显示的三个属性下创建和读取有效的 xml 文件。任何想法?