none
XElement - öffnende und schließende Klammer im Namen. RRS feed

  • Frage

  • Hi,

    wie kann ich bei dem Namen eines XML Elements eine öffnende und schließende Klammer aufnehmen?

    Beispiel:

    new XElement("MeinNameMit(und)", "MeinWert");

    Danke

    Christian

    Dienstag, 26. Juli 2011 08:38

Antworten

  • Hallo Christian,

    Satzzeichen so auch Klammern sind für einen Namen nicht zulässig,
    siehe Extensible Markup Language (XML) 1.0 (Fifth Edition) - 2.3 Common Syntactic Constructs

    The ASCII symbols and punctuation marks, along with a fairly large group of Unicode symbol characters,
    are excluded from names because they are more useful as delimiters in contexts where XML names are used outside XML documents; ...

    Alternativ kannst Du das machen, was u. a. beim DataSet in solchen Fällen verwendet wird,
    die hexadezimale Kodierung umgeben mit Unterstrichen:

          var element = new XElement(XmlConvert.EncodeName("MeinNameMit(und)"), "MeinWert");
          Console.WriteLine(element.ToString());
          Console.WriteLine("{0} => {1}", element.Name, XmlConvert.DecodeName(element.Name.LocalName));
    

    Wobei sich das nicht auf Anhieb jedem erschließen dürfte.
    Am besten verzichtest Du auf solche Konstrukte und man hält sich an die Vorschläge der XML Spezifikation.

    Gruß Elmar


    • Als Antwort markiert Christian315 Dienstag, 26. Juli 2011 11:22
    Dienstag, 26. Juli 2011 10:22
    Beantworter

Alle Antworten

  • Hallo Christian,

    Satzzeichen so auch Klammern sind für einen Namen nicht zulässig,
    siehe Extensible Markup Language (XML) 1.0 (Fifth Edition) - 2.3 Common Syntactic Constructs

    The ASCII symbols and punctuation marks, along with a fairly large group of Unicode symbol characters,
    are excluded from names because they are more useful as delimiters in contexts where XML names are used outside XML documents; ...

    Alternativ kannst Du das machen, was u. a. beim DataSet in solchen Fällen verwendet wird,
    die hexadezimale Kodierung umgeben mit Unterstrichen:

          var element = new XElement(XmlConvert.EncodeName("MeinNameMit(und)"), "MeinWert");
          Console.WriteLine(element.ToString());
          Console.WriteLine("{0} => {1}", element.Name, XmlConvert.DecodeName(element.Name.LocalName));
    

    Wobei sich das nicht auf Anhieb jedem erschließen dürfte.
    Am besten verzichtest Du auf solche Konstrukte und man hält sich an die Vorschläge der XML Spezifikation.

    Gruß Elmar


    • Als Antwort markiert Christian315 Dienstag, 26. Juli 2011 11:22
    Dienstag, 26. Juli 2011 10:22
    Beantworter
  • Hi Elmar,

    ok, vielen Dank für die Infos.

    Viele Grüße

    Christian

    Dienstag, 26. Juli 2011 11:22