Mir ist klar, dass es nicht elegant oder erwünscht ist, aber darf ein Attributwert in einem XML-Element (in wohlgeformtem XML) mehrere Zeilen umfassen?
z.B
<some-xml-element value="this value goes over....
multiple lines!" />
Ja, mir ist klar, dass es bessere Möglichkeiten gibt, das zu schreiben. Ich würde es persönlich schreiben wie:
<some-xml-element>
<value>this value goes over...
multiple lines!</value>
</some-xml-element>
oder:
<some-xml-element value="this value goes over.... " />
Aber wir haben unseren eigenen XML-Parser und ich würde gerne wissen, ob das erste Beispiel in wohlgeformtem XML zulässig ist.
xml
xml-parsing
CodeAndCats
quelle
quelle
Antworten:
http://www.w3.org/TR/REC-xml/#NT-AttValue
Es scheint , außer alles zu sagen
<
,&
und Ihr Trennzeichen ('
oder"
) ist in Ordnung. So sollte auch Newline sein.quelle
Es ist jedoch zulässig, dass Ihr XML-Parser gemäß der W3C-Empfehlung alle Leerzeichen auf Leerzeichen (0x20) normalisiert. Daher unterscheidet sich die Ausgabe Ihrer Beispiele (Sie sollten eine neue Zeile in der Ausgabe für "& # 13; & # 10" haben ; ", aber im ersten Fall nur Leerzeichen).
http://www.w3.org/TR/1998/REC-xml-19980210#AVNormalize
quelle
Nur .NET: Wenn Sie nicht sicher sind, ob die Zielzeichenfolge ein gültiges XML-Attribut ist (und den Wert dieses Attributs über Code angeben), können Sie jederzeit die Funktion SecurityElement.Escape verwenden, um ungültige Zeichen zu umgehen.
Gemäß der Beschreibung dieser Funktion sind die einzigen ungültigen Zeichen:
<
,>
,&
,'
,"
Und das bedeutet (wie meine Vorgänger geschrieben haben), dass die neue Zeile in Ordnung sein sollte.
quelle
Ja, das erste Beispiel ist gültig.
quelle