我正在制定一个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
的{{1}},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
最后是我与Marshaller的关系:
package foo;
@XmlRootElement(name="ClinicalDocument")
public class ClinicalDocument {....}
因此,我必须在上面显示的三个属性下创建和读取有效的xml文件。有什么想法吗?
答案 0 :(得分:0)
我找到的唯一有效解决方案是添加:
@XmlAttribute(name="xsi:schemaLocation")
protected final String xsi_schemaLocation="urn:hl7 org:v3 CDA.xsd";
@XmlAttribute(name="xmlns")
protected final String xmlns="urn:hl7-org:v3";
@XmlAttribute(name="xmlns:xsi")
protected final String xmlns_xsi="http://www.w3.org/2001/XMLSchema instance";
课程ClinicalDocument
中的。
它有效,但我不喜欢它!我想在包级别使用注释。
答案 1 :(得分:0)
支持注释只是阅读和编写CDA文档要求的开始 - 我建议使用MDHT,带有API的开源项目来创建,使用和验证CDA文档。
您可以在此处找到该项目 https://www.projects.openhealthtools.org/sf/projects/mdht/