Muss eine neue Zeile der XML-Deklaration folgen?

9

Ist dies eine gültige XML-Instanz? Es hat nichts zwischen der XML-Deklaration und dem Wurzelknoten.

%Vor%

Ich konnte den richtigen Platz in der XML-Spezifikation selbst nicht finden und hoffe, dass jemand mir helfen wird ...

    
Andrej 05.12.2011, 11:24
quelle

2 Antworten

8

Die Spezifikation (siehe 2.8 Prolog und Document Type Declaration ) erfordert keine Newline (aber erlaubt), der XML-Deklaration zu folgen.

Formal wird das geschrieben als:

  

[16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
  ...
[22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?
[23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
  ...
[27] Misc ::= Comment | PI | S

Wie Sie in [22] prolog sehen können, ist die XML-Deklaration optional (siehe das Fragezeichen nach dem Symbol) und null, eins oder mehrere (siehe Stern) Misc kann folgen, die sind: Kommentare, andere Verarbeitungsanweisungen ( PI ) oder Whitespace ( S ). Whitespace enthält den Zeilenumbruch.

Da Misc hier optional ist, können Sie nach der Deklaration einem Zeilenumbruch nicht folgen.

    
Michael Krelin - hacker 05.12.2011, 11:27
quelle
2

Neue Zeilen oder so sind nicht Teil der Spezifikation. Wenn Sie beispielsweise ein XML-Dokument mit der XMLOutputter-Klasse (in Java) schreiben, erhalten Sie eine Datei ohne Zeilenumbrüche. Newlines sind für Menschen.

    
Thargor 05.12.2011 11:31
quelle

Tags und Links