XML-Fragment innerhalb eines XML-Knotens?



  • Servus.

    Ich will ein XML-Fragment innerhalb eines XML-Knotens (XmlContent im Beispiel) speichern.

    <XmlContent><Name>Franz</Name><Age>25</Age></XmlContent>
    

    Das XML-Dokument wird gegen ein Schema validiert und dieses meckert, wenn unbekannte XML-Daten innerhalb des Knotens stehen. Der Datentyp des Knotens ist string. Gibt ein besseres/einfacheres Verfahren, als das Entwerten der "<" bzw. "\>" Zeichen, um XML-Fragmente innerhalb eines XML-Knotens zu speichern?

    Danke im voraus



  • Gibt ein besseres/einfacheres Verfahren, als das Entwerten der "<" bzw. "\>" Zeichen,

    Was heist den Entwerten in diesem Zusammenhang?
    Die DTD muss strikt befolgt werden, aber du kannst ANY als Inhalt angeben um zulassen das jeder Inhalt valide ist.

    http://www.stefanheymann.de/xml/dtdxml.htm

    ANY Es kann jeder beliebige Inhalt (Text, weitere Elemente) enthalten sein



  • scap schrieb:

    Gibt ein besseres/einfacheres Verfahren, als das Entwerten der "<" bzw. "\>" Zeichen, um XML-Fragmente innerhalb eines XML-Knotens zu speichern?

    Nein. Die Umcodierung der <, > und & innerhalb der Daten ist die richtige Darstellung. Da Du XML als Dateninhalt in den Knoten reinnehmen willst, mußt Du die Entitäten verwenden.

    Alternativ bleibt Dir noch übrig, daß Du den Inhalt von XMLNode ebenfalls in das Schema aufnimmst - falls der Inhalt also nicht x-beliebig ist, sondern ebenfalls Regeln folgt.



  • Und im DTD/Schema einfach den Typ des Parent-Knotens auf CDATA stellen? Setzt natürlich voraus, dass deine Library DTD/Schema ebenfalls ausliest (alias kein TinyXML).

    MfG SideWinder



  • Aber meines Wissens müssen doch auch bei CDATA <, > und & als &entität; dargestellt werden?



  • Marc++us schrieb:

    Aber meines Wissens müssen doch auch bei CDATA <, > und & als &entität; dargestellt werden?

    Nein. Folgendes ist legales XML:

    <xml>
      <node>
      <![CDATA[
      > < <hal / > &  ' "
      ]]>
      </node>
    </xml>
    


  • Marc++us schrieb:

    Aber meines Wissens müssen doch auch bei CDATA <, > und & als &entität; dargestellt werden?

    dann waere CDATA ja unnoetig...

    in ne CDATA section kannst du alles packen was du willst (nur kein ]]> ;))

    ist recht praktisch wenn du zB scripte oder binaerdaten hast



  • Ihr habt ja so recht... so funktioniert ja auch mein von mir geschriebener XML-Export für das Forum hier... autsch.

    Das Alter. 🙄



  • danke für die Antworten, ich werde die < bzw. > umcodieren. Auf den any-Typ möchte ich möglichst verzichten.

    Grüße


Anmelden zum Antworten