2016-04-28 27 views
3

Ich versuche, Java-Code von einem xsd für FHIR zu generieren.FHIR JAXB XJC Codegenerierung

ich die Code-Generierung Schema von here heruntergeladen und dann lief ich:

xjc patient.xsd 

Aber ich habe die folgende Ausnahme bekam:

parsing a schema... 
[ERROR] src-resolve: Cannot resolve the name 'Account' to a(n) 'type definition' component. 
    line 332 of file:/Users/gerard/Downloads/fhir-codegen-xsd/fhir-base.xsd 

[ERROR] src-resolve: Cannot resolve the name 'DetectedIssue' to a(n) 'type definition' component. 
    line 354 of file:/Users/gerard/Downloads/fhir-codegen-xsd/fhir-base.xsd 

[ERROR] src-resolve: Cannot resolve the name 'ImplementationGuide' to a(n) 'type definition' component. 
    line 380 of file:/Users/gerard/Downloads/fhir-codegen-xsd/fhir-base.xsd 

[ERROR] src-resolve: Cannot resolve the name 'MedicationOrder' to a(n) 'type definition' component. 
    line 387 of file:/Users/gerard/Downloads/fhir-codegen-xsd/fhir-base.xsd 

[ERROR] src-resolve: Cannot resolve the name 'QuestionnaireResponse' to a(n) 'type definition' component. 
    line 409 of file:/Users/gerard/Downloads/fhir-codegen-xsd/fhir-base.xsd 

[ERROR] src-resolve: Cannot resolve the name 'Parameters' to a(n) 'type definition' component. 
    line 425 of file:/Users/gerard/Downloads/fhir-codegen-xsd/fhir-base.xsd 

[ERROR] src-resolve: Cannot resolve the name 'MeasuredQuantity' to a(n) 'type definition' component. 
    line 225 of file:/Users/gerard/Downloads/fhir-codegen-xsd/questionnaireanswers.xsd 

ich importiert haben alle XSD zu verdunkeln und Ich sehe die gleichen Fehler in fhir-base.xsd. Ich bin mir nicht sicher, wie ich es lösen soll, weil sich zum Beispiel die Datei account.xs im selben Verzeichnis befindet.

+0

Es könnte hilfreich sein, die relevanten xsd-Dateien hier zu posten (nämlich patient.xsd und fhir-base.xsd) – rmlan

+0

@rmlan Die Dateien sind riesig, Sie können es über den Link 'hier' herunterladen. Vielen Dank. – gerardribas

Antwort

0

Es gibt ein separates Schema namens fhir-all.xsd. Code-Generatoren sind in der Regel glücklicher, wenn alles in einer Datei enthalten ist. Daher veröffentlichen wir dieses Schema zu diesem Zweck.

1

Ich hatte das gleiche Problem. Ich habe versucht, drei Ressourcen aus dem Archiv auf der Website zur Verfügung gestellten Fhir:

fhir-base.xsd 
fhir-all.xsd 
fhir-single.xsd 

Jeder Fehler scheint die gleiche Form (73 diese Einträge) gegen Fhir-base.xsd zu nehmen ...

[ERROR] Property "Lang" is already defined. Use <jaxb:property> to resolve this conflict. 
    line 323 of file:/E:/fhir-spec/resources/fhir-all-xsd/fhir-xhtml.xsd 

[ERROR] The following location is relevant to the above error 
    line 324 of file:/E:/fhir-spec/resources/fhir-all-xsd/fhir-xhtml.xsd 

versuchen Sie einfach ein paar Brute-Force-Taktik .. ich fand und kommentierte ein paar Zeilen aus in Fhir-xhtml.xsd:

Lines 323, 324 
<xs:attribute name="lang" type="LanguageCode"/> 
<xs:attribute ref="xml:lang"/> 

Line 1351 
<xs:attribute name="lang" type="LanguageCode"/> 

Danach konnte ich Code erfolgreich generieren.

mkdir gen 
xjc -d gen fhir-base.xsd 

Ich konnte nicht überall „offiziellen“ zB Github finden, usw. ein Problem einzureichen. Ich bin mir nicht ganz sicher, welche Absicht der XHTML-Inhalt hat, aber ich frage mich, ob hier ein Konflikt zwischen dem Datentyp "LanguageCode" und der HTML-Spezifikation für den Sprachcode auftreten könnte.

Viel Glück!