Я работаю на стандарте XML, который требует, чтобы следующий корневой элемент должен быть определен:Аннотация схемы XML в Java
<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
. Обычно я аннотирую каждый класс и , тогда я использую маршаллов и маркеров и пишущих/читаю действительные файлы 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 {....}
И, наконец, то, что я получаю с ИАС:
<?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 f ile по трем свойствам, показанным выше. Есть идеи?
вы пробовали [XStream] (xstream.codehaus.org) до сих пор? – MKorsch
На самом деле я этого не делал! Считаете ли вы, что это лучше? –
Чтобы сериализовать и десериализовать объекты в xml и наоборот, я не знаю каких-либо фреймворков, которые делают это лучше. Кроме того, он очень прост в использовании. Просто попробуйте! Вы увидите на веб-сайте, соответствует ли оно вашим требованиям или нет. – MKorsch