这是我收到的xml文件,我想用delphi生成相同的输出.我使用delphi xml向导通过我的模式生成一个大单元.
<?xml version="1.0" encoding="iso-8859-1"?><reh:Reha xmlns:reh="http://www.vdek.com/xml-schema/REH/1.8"> <reh:logische_Version>1.6.0</reh:logische_Version> <reh:KV> <reh:Kopfdaten> <kod:Erstellungsdatum_Uhrzeit xmlns:kod="http://www.vdek.com/xml-schema/KOD/1.2">2014-09-23T15:33:23</kod:Erstellungsdatum_Uhrzeit> <kod:Version xmlns:kod="http://www.vdek.com/xml-schema/KOD/1.2">1.2.0</kod:Version> <kod:Dateinummer xmlns:kod="http://www.vdek.com/xml-schema/KOD/1.2">000010</kod:Dateinummer> <kod:Identifikationsdaten xmlns:kod="http://www.vdek.com/xml-schema/KOD/1.2"> <kod:IK_Absender>108018007</kod:IK_Absender> <kod:IK_Empfaenger>510800000</kod:IK_Empfaenger> <kod:IK-Kostentraeger>108018007</kod:IK-Kostentraeger> <kod:IK_Einrichtung>510800000</kod:IK_Einrichtung> </kod:Identifikationsdaten> <kod:Fall_ID_KV xmlns:kod="http://www.vdek.com/xml-schema/KOD/1.2"> <kod:Krankenversichertennummer>I123456789</kod:Krankenversichertennummer> <kod:Versichertenstatus>50001</kod:Versichertenstatus> <kod:Kartengueltigkeit>1712</kod:Kartengueltigkeit> <kod:Fallnummer>01800000099988877</kod:Fallnummer> </kod:Fall_ID_KV> <reh:Dateinummer></reh:Dateinummer> </reh:Kopfdaten> <reh:Bewilligung> <bew:Admindaten xmlns:bew="http://www.vdek.com/xml-schema/BEW/1.5"> <bew:Verarbeitungskennzeichen>10</bew:Verarbeitungskennzeichen> <bew:Version>1.5.0</bew:Version> <bew:LfdNr>01</bew:LfdNr> </bew:Admindaten> <bew:Fachliche_Daten xmlns:bew="http://www.vdek.com/xml-schema/BEW/1.5"> <bew:Rehabilitand> <bew:Anrede>1</bew:Anrede> <bew:Name> <bty:Nachname xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">Mustermann</bty:Nachname> <bty:Vorname xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">Max</bty:Vorname> </bew:Name> <bew:Geschlecht>1</bew:Geschlecht> <bew:Geburtsdatum>1950-08-21</bew:Geburtsdatum> <bew:Adresse> <bty:Strasse xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">Saonestr.</bty:Strasse> <bty:Hausnummer xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">3</bty:Hausnummer> <bty:Wohnort xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">Frankfurt</bty:Wohnort> <bty:PLZ xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">60528</bty:PLZ> <bty:Laenderkennzeichen xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">D</bty:Laenderkennzeichen> </bew:Adresse> <bew:Kommunikation> <bty:Telefon xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">069/12345</bty:Telefon> </bew:Kommunikation> </bew:Rehabilitand> <bew:Kosteninformationen> <bew:Zuzahlung> <bew:Zuzahlungseinzug>2</bew:Zuzahlungseinzug> <bew:AnzahlTage>028</bew:AnzahlTage> <bew:Zuzahlungsbetrag>01000</bew:Zuzahlungsbetrag> </bew:Zuzahlung> </bew:Kosteninformationen> <bew:Rehainformationen> <bew:Rehaart>93</bew:Rehaart> </bew:Rehainformationen> <bew:Aufnahmedaten> <bew:IK_Krankenhaus>260612124</bew:IK_Krankenhaus> <bew:Behandlungsart>1</bew:Behandlungsart> <bew:Bewilligungsdiagnosen> <bew:Version_ICD>2014</bew:Version_ICD> <bew:Diagnose> <bty:Diagnosenschluessel xmlns:bty="http://www.vdek.com/xml-schema/BTY/1.2">M151</bty:Diagnosenschluessel> </bew:Diagnose> </bew:Bewilligungsdiagnosen> <bew:Aufnahmedaten> <bew:Erfolgt>N</bew:Erfolgt> <bew:Geplant>2014-10-05</bew:Geplant> </bew:Aufnahmedaten> <bew:Indikationsgruppe>SA</bew:Indikationsgruppe> </bew:Aufnahmedaten> <bew:Bewilligungsinformationen> <bew:Bewilligungsdatum>2014-09-23</bew:Bewilligungsdatum> <bew:Kostenzusage_gueltig_bis>2014-10-31</bew:Kostenzusage_gueltig_bis> </bew:Bewilligungsinformationen> <bew:Stationaerdaten> <bew:Behandlungsabschnitte>01</bew:Behandlungsabschnitte> <bew:bewilligte_Tage>020</bew:bewilligte_Tage> </bew:Stationaerdaten> </bew:Fachliche_Daten> <reh:Fachliche_Daten> <reh:Rehabilitand/> </reh:Fachliche_Daten> </reh:Bewilligung> </reh:KV> <reh:Papieranlage>N</reh:Papieranlage> </reh:Reha>
我的delphi代码
var XML: IXMLReha; begin XML := NewReha; XML.OwnerDocument.Options := [doNodeAutoCreate,doNodeAutoIndent]; XML.Logische_Version := '1.6.0'; //Präfixe wie :bs,:reh fehlen noch {Kopfdaten} //xmlns:kod Xml.KV.Kopfdaten.DeclareNamespace('kod','http://www.vdek.com/xml-schema/KOD/1.2'); Xml.KV.Kopfdaten.Attributes['test'] := 'test2'; XML.KV.Kopfdaten.Erstellungsdatum_Uhrzeit := '2014-09-23T15:33:23'; XML.KV.Kopfdaten.Version := '1.2.0'; XML.KV.Kopfdaten.Dateinummer := '000010'; XML.KV.Kopfdaten.Identifikationsdaten.IK_Absender := '108018007'; XML.KV.Kopfdaten.Identifikationsdaten.IK_Empfaenger := '510800000'; XML.KV.Kopfdaten.Identifikationsdaten.IKKostentraeger := '108018007'; XML.KV.Kopfdaten.Identifikationsdaten.IK_Einrichtung := '510800000'; XML.KV.Kopfdaten.Fall_ID_KV.Krankenversichertennummer := 'I123456789'; XML.KV.Kopfdaten.Fall_ID_KV.Versichertenstatus := '50001'; XML.KV.Kopfdaten.Fall_ID_KV.Kartengueltigkeit := '1712'; XML.KV.Kopfdaten.Fall_ID_KV.Fallnummer := '01800000099988877'; XML.KV.Kopfdaten.Dateinummer := ''; {Bewilligung} XML.KV.Bewilligung.Admindaten.Verarbeitungskennzeichen := '10'; XML.KV.Bewilligung.Admindaten.Version := '1.5.0'; XML.KV.Bewilligung.Admindaten.LfdNr := '01'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Anrede := '1'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Name.Nachname := 'Mustermann'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Name.Vorname := 'Max'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Geschlecht := '1'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Geburtsdatum := '1950-08-21'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Adresse.Strasse := 'Saonestr'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Adresse.Hausnummer := '3'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Adresse.Wohnort := 'Frankfurt'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Adresse.PLZ := '60528'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Adresse.Laenderkennzeichen := 'D'; XML.KV.Bewilligung.Fachliche_Daten.Rehabilitand.Kommunikation.Telefon := '069/12345'; { ...} //Dokument speichern XML.OwnerDocument.SaveToFile('\\Server\Gen.xml'); end;
<?xml version="1.0"?> <Reha xmlns="http://www.vdek.com/xml-schema/REH/1.8" xsi:schemaLocation="http://www.foo.com/Myxsd.xsd"> <logische_Version>1.6.0</logische_Version> <KV> <Kopfdaten xmlns:kod="http://www.vdek.com/xml-schema/KOD/1.2" test="test2"> <Erstellungsdatum_Uhrzeit>2014-09-23T15:33:23</Erstellungsdatum_Uhrzeit> <Version>1.2.0</Version> <Dateinummer></Dateinummer> <Identifikationsdaten> <IK_Absender>108018007</IK_Absender> <IK_Empfaenger>510800000</IK_Empfaenger> <IK-Kostentraeger>108018007</IK-Kostentraeger> <IK_Einrichtung>510800000</IK_Einrichtung> </Identifikationsdaten> <Fall_ID_KV> <Krankenversichertennummer>I123456789</Krankenversichertennummer> <Versichertenstatus>50001</Versichertenstatus> <Kartengueltigkeit>1712</Kartengueltigkeit> <Fallnummer>01800000099988877</Fallnummer> </Fall_ID_KV> </Kopfdaten> <Bewilligung> <Admindaten> <Verarbeitungskennzeichen>10</Verarbeitungskennzeichen> <Version>1.5.0</Version> <LfdNr>01</LfdNr> </Admindaten> <Fachliche_Daten> <Rehabilitand> <Anrede>1</Anrede> <Name> <Nachname>Mustermann</Nachname> <Vorname>Max</Vorname> </Name> <Geschlecht>1</Geschlecht> <Geburtsdatum>1950-08-21</Geburtsdatum> <Adresse> <Strasse>Saonestr</Strasse> <Hausnummer>3</Hausnummer> <Wohnort>Frankfurt</Wohnort> <PLZ>60528</PLZ> <Laenderkennzeichen>D</Laenderkennzeichen> </Adresse> <Kommunikation> <Telefon>069/12345</Telefon> </Kommunikation> </Rehabilitand> </Fachliche_Daten> </Bewilligung> </KV> </Reha>
那么如何在ym xml文件中设置像reh:,:kod …这样的前缀/命名空间,就像在原始的xml文件中一样?
如你所见,我不使用“.addchild”命令,所以我需要一个不同的答案.
解决方法
如果您有一个复杂的XSD架构,由多个文件组成,XML数据绑定向导无法创建正确的代码(就像您已经注意到的那样).在这种情况下,更容易将所需的输出提供给在线XML到XSD转换器,并将其用作数据绑定向导的输入.
我使用优秀的 XMLgrid converter制作了一个新的XSD文件(根据您在此处发布的XML文件生成)
我使用优秀的 XMLgrid converter制作了一个新的XSD文件(根据您在此处发布的XML文件生成)
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- XML Schema Generated from XML Document on Thu Apr 09 2015 14:31:00 GMT+0200 (Romance Daylight Time) --> <!-- with XmlGrid.net Free Online Service http://xmlgrid.net --> <xs:element name="reh:Reha"> <xs:complexType> <xs:sequence> <xs:element name="reh:logische_Version" type="xs:string"></xs:element> <xs:element name="reh:KV"> <xs:complexType> <xs:sequence> <xs:element name="reh:Kopfdaten"> <xs:complexType> <xs:sequence> <xs:element name="kod:Erstellungsdatum_Uhrzeit" type="xs:dateTime"> <xs:complexType> <xs:attribute name="xmlns:kod" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name="kod:Version" type="xs:string"> <xs:complexType> <xs:attribute name="xmlns:kod" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name="kod:Dateinummer" type="xs:string"> <xs:complexType> <xs:attribute name="xmlns:kod" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name="kod:Identifikationsdaten"> <xs:complexType> <xs:sequence> <xs:element name="kod:IK_Absender" type="xs:string"></xs:element> <xs:element name="kod:IK_Empfaenger" type="xs:string"></xs:element> <xs:element name="kod:IK-Kostentraeger" type="xs:string"></xs:element> <xs:element name="kod:IK_Einrichtung" type="xs:string"></xs:element> </xs:sequence> <xs:attribute name="xmlns:kod" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name="kod:Fall_ID_KV"> <xs:complexType> <xs:sequence> <xs:element name="kod:Krankenversichertennummer" type="xs:string"></xs:element> <xs:element name="kod:Versichertenstatus" type="xs:string"></xs:element> <xs:element name="kod:Kartengueltigkeit" type="xs:string"></xs:element> <xs:element name="kod:Fallnummer" type="xs:string"></xs:element> </xs:sequence> <xs:attribute name="xmlns:kod" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="reh:Bewilligung"> <xs:complexType> <xs:sequence> <xs:element name="bew:Admindaten"> <xs:complexType> <xs:sequence> <xs:element name="bew:Verarbeitungskennzeichen" type="xs:string"></xs:element> <xs:element name="bew:Version" type="xs:string"></xs:element> <xs:element name="bew:LfdNr" type="xs:string"></xs:element> </xs:sequence> <xs:attribute name="xmlns:bew" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name="bew:Fachliche_Daten"> <xs:complexType> <xs:sequence> <xs:element name="bew:Rehabilitand"> <xs:complexType> <xs:sequence> <xs:element name="bew:Anrede" type="xs:string"></xs:element> <xs:element name="bew:Name"> <xs:complexType> <xs:sequence> <xs:element name="bty:Nachname" type="xs:string"> <xs:complexType> <xs:attribute name="xmlns:bty" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name="bty:Vorname" type="xs:string"> <xs:complexType> <xs:attribute name="xmlns:bty" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="bew:Geschlecht" type="xs:string"></xs:element> <xs:element name="bew:Geburtsdatum" type="xs:date"></xs:element> <xs:element name="bew:Adresse"> <xs:complexType> <xs:sequence> <xs:element name="bty:Strasse" type="xs:string"> <xs:complexType> <xs:attribute name="xmlns:bty" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name="bty:Hausnummer" type="xs:string"> <xs:complexType> <xs:attribute name="xmlns:bty" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name="bty:Wohnort" type="xs:string"> <xs:complexType> <xs:attribute name="xmlns:bty" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name="bty:PLZ" type="xs:string"> <xs:complexType> <xs:attribute name="xmlns:bty" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> <xs:element name="bty:Laenderkennzeichen" type="xs:string"> <xs:complexType> <xs:attribute name="xmlns:bty" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="bew:Kommunikation"> <xs:complexType> <xs:sequence> <xs:element name="bty:Telefon" type="xs:string"> <xs:complexType> <xs:attribute name="xmlns:bty" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="bew:Kosteninformationen"> <xs:complexType> <xs:sequence> <xs:element name="bew:Zuzahlung"> <xs:complexType> <xs:sequence> <xs:element name="bew:Zuzahlungseinzug" type="xs:string"></xs:element> <xs:element name="bew:AnzahlTage" type="xs:string"></xs:element> <xs:element name="bew:Zuzahlungsbetrag" type="xs:string"></xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="bew:Rehainformationen"> <xs:complexType> <xs:sequence> <xs:element name="bew:Rehaart" type="xs:string"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="bew:Aufnahmedaten"> <xs:complexType> <xs:sequence> <xs:element name="bew:IK_Krankenhaus" type="xs:string"></xs:element> <xs:element name="bew:Behandlungsart" type="xs:string"></xs:element> <xs:element name="bew:Bewilligungsdiagnosen"> <xs:complexType> <xs:sequence> <xs:element name="bew:Version_ICD" type="xs:string"></xs:element> <xs:element name="bew:Diagnose"> <xs:complexType> <xs:sequence> <xs:element name="bty:Diagnosenschluessel" type="xs:string"> <xs:complexType> <xs:attribute name="xmlns:bty" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="bew:Aufnahmedaten"> <xs:complexType> <xs:sequence> <xs:element name="bew:Erfolgt" type="xs:string"></xs:element> <xs:element name="bew:Geplant" type="xs:date"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="bew:Indikationsgruppe" type="xs:string"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="bew:Bewilligungsinformationen"> <xs:complexType> <xs:sequence> <xs:element name="bew:Bewilligungsdatum" type="xs:date"></xs:element> <xs:element name="bew:Kostenzusage_gueltig_bis" type="xs:date"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="bew:Stationaerdaten"> <xs:complexType> <xs:sequence> <xs:element name="bew:Behandlungsabschnitte" type="xs:string"></xs:element> <xs:element name="bew:bewilligte_Tage" type="xs:string"></xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="xmlns:bew" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="reh:Papieranlage" type="xs:string"></xs:element> </xs:sequence> <xs:attribute name="xmlns:reh" type="xs:string"></xs:attribute> </xs:complexType> </xs:element> </xs:schema>