2015-04-08 122 views
7

这是我收到的一个xml文件,我想用delphi生成相同的输出。我使用delphi xml向导来通过我的模式生成一个大单元。IXMLNode设置前缀和名称空间

所以这是输出我想有(原始文件)

<?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; 

与我的Delphi代码生成My输出

<?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> 

那么如何我可以设置前缀/命名空间像reh:,:kod ...在原始xml文件中的ym xml文件中?

正如你所看到的我不使用“.addchild”命令,所以我需要一个不同的答案。

+0

可能重复http://stackoverflow.com/questions/3119314/如何设置在delphi中的文档元素的前缀) –

+0

它的笑容是的,但正如你可以看到我没有与“AddChild”一起工作,所以解决方案对我来说没有任何意义。这就是为什么我问 – Hidden

+0

如何使用XSLT来执行此转换?你可以在Delphi中应用XSLT样式表吗? –

回答

1

这是一个古老的Delphi错误,每个人都想在现代环境中使用Delphi进行高端编程。 如果XML绑定向导遇到类似@include的东西,它往往会崩溃,所以如果您有嵌套的命名空间(或者外部依赖关系,就像现在大多数模式一样),那么您运气不好。 然而,添加命名空间是不可能的。在正常情况下,不需要XML解析器来解析名称,但是如果您有两个文件使用相同的标识符 - 那么它将会发生冲突并使XML无用。 你应该向EMB提交一份要求,并让他们解决这个问题,就像我在2次会议上所做的那样 - 也许他们会醒来并且这次做一些事情。

+0

它是XSD文件挑剔你可以发布一个例子,但如果你接受我的回答,然后请出的answere或接受它。有没有可悲的更新这个问题,当然是可能的... – whosrdaddy

+0

。我诚恳希望Embarcadero公司修复了这个,但它迄今仍然存在的。 –

3

如果您有一个复杂的XSD架构,包含多个文件,则XML数据绑定向导无法创建正确的代码(就像您注意到的那样)。在这种情况下,将想要的输出提供给在线的XML到XSD转换器并将其用作数据绑定向导的输入会更容易。 我制作一个新的XSD文件(从你这里张贴的XML文件生成),使用优秀XMLgrid converter

<?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> 

如果导入该XSD文件到XML绑定向导,它会产生可以生产一个单位为您更正XML。

+0

你可以找到由XE7生成的文件[here](http://pastebin.com/bcNYzUwX) – whosrdaddy

+0

正如您在此处看到的:左侧=原始|||||||||右侧=新生成的文件。命名空间仍然缺失: - /只能为整个“Kopfdaten”部分设置命名空间。 https://i.imgur.com/trWqUPU.png – Hidden

2

只是一个快速的解决方案,可以使其更漂亮

using msxml; 

procedure TForm1.bt1Click(Sender: TObject); 
var 
    Document: DOMDocument; 
    RootNode, Node: IXMLDOMNode; 
const 
    rehNameSpace: WideString = 'reh'; 
    rehNameSpaceURI: WideString = 'http://www.vdek.com/xml-schema/REH/1.8'; 
    kodNameSpace: WideString = 'kod'; 
    kodNameSpaceURI: WideString = 'http://www.vdek.com/xml-schema/KOD/1.2'; 
begin 
    Document := CoDOMDocument60.Create; 

    RootNode := Document.createNode(NODE_ELEMENT, rehNameSpace + ':Reha', rehNameSpaceURI); 
    Document.appendChild(RootNode); 

    Node := Document.createNode(NODE_ELEMENT, rehNameSpace + ':logische_Version', rehNameSpaceURI); 
    Node.text := '1.6.0'; 
    RootNode.appendChild(Node); 

    Node := Document.createNode(NODE_ELEMENT, rehNameSpace + ':KV', rehNameSpaceURI); 
    RootNode.appendChild(Node); 

    RootNode := Node; 

    Node := Document.createNode(NODE_ELEMENT, rehNameSpace + ':Kopfdaten', rehNameSpaceURI); 
    RootNode.appendChild(Node); 
    RootNode := Node; 

    Node := Document.createNode(NODE_ELEMENT, kodNameSpace + ':Erstellungsdatum_Uhrzeit', kodNameSpaceURI); 
    Node.text := '2014-09-23T15:33:23'; 
    RootNode.appendChild(Node); 

    Node := Document.createNode(NODE_ELEMENT, kodNameSpace + ':Version', kodNameSpaceURI); 
    Node.text := '1.2.0'; 
    RootNode.appendChild(Node); 

    Node := Document.createNode(NODE_ELEMENT, kodNameSpace + ':Dateinummer', kodNameSpaceURI); 
    Node.text := '000010'; 
    RootNode.appendChild(Node); 

    Node := Document.createNode(NODE_ELEMENT, kodNameSpace + ':Identifikationsdaten', kodNameSpaceURI); 
    RootNode.appendChild(Node); 

    RootNode := Node; 

    mmo1.Text := Document.xml;  // TMemo 
end; 
的[如何设置在Delphi的文档元素的前缀(
+0

IXMLDOMNode和IXMLNode有什么区别?在我实际的代码我只用IXMLNode – Hidden

+1

,而这会工作,它错过整点和被获取XML数据绑定向导来产生正确的输出... – whosrdaddy

+1

@Hidden'IXMLNode'是德尔福的'xml'节点接口单元。 'IXMLDOMNode'是来自微软'msxml'库的节点接口。 –