Frage

Ich dachte, ich sollte „text/xml“ senden, aber dann habe ich gelesen, dass ich „application/xml“ senden sollte.Ist es wichtig?Kann jemand den Unterschied erklären?

War es hilfreich?

Lösung

der Differenz zwischen text / xml und Anwendung / xml ist das Standardzeichencodierung, wenn der Parameter charset weggelassen ist:

text / xml und application / xml verhalten sich anders als das charet Der Parameter ist nicht explizit angegeben. Wenn der Standard-Charset (d. H., US-ASCII) für Text / XML ist aus irgendeinem Grund unpraktisch (z. B. schlechtes Web) Server), Application / XML bietet eine Alternative (siehe "Optional") Parameter "der Anwendungs- / XML-Registrierung in Abschnitt 3.2).

für text / xml :

konform mit [rfc2046], wenn ein Text / XML-Eingang mit empfangen wird Der Charset-Parameter entfällt, MIME-Prozessoren und XML-Prozessoren Muss den Standard-Charset-Wert von "US-ASCII" [ASCII] verwenden. In Fällen Wenn die XML-MIME-Entität über HTTP übertragen wird, ist der Standardwert Charset-Wert ist immer noch "US-ASCII".

für application / xml :

Wenn ein Anwendungs- / XML-Entität bei der Zeichenhilfe empfangen wird Parameter wird weggelassen, es werden keine Informationen über die angegeben Charset durch den Header des MIME-Content-Typs. Konformens des XML. Prozessoren müssen den Anforderungen in Abschnitt 4.3.3 von [XML] folgen das adressiert dieses Eventual direkt. MIME-Prozessoren jedoch Das sind keine XML-Prozessoren, wenn ein Standard-Zeichenelement nicht anzunehmen, wenn Der Charset-Parameter wird von einer Anwendung / XML-Entität weggelassen.

Wenn der Parameter charset weggelassen ist, ist die Zeichenkodierung von text / xml us-ascII während mit anwendung / xml das Zeichen Codierung kann im Dokument selbst angegeben werden.

Nun ist eine Faustregel im Internet: "Seien Sie streng mit der Ausgabe, ist jedoch tolerant mit der Eingabe." Das bedeutet, dass Sie die Standards so weit wie möglich erfüllen, wenn Sie Daten über das Internet liefern. Bauen Sie jedoch in einigen Mechanismen auf, um Fehler zu übersehen oder zu erraten, wenn Sie Daten über das Internet empfangen und interpretieren.

Wählen Sie also in Ihrem Fall einfach einen der beiden Typen aus (ich empfehle Application / XML ) und stellen Sie sicher, dass Sie das verwendete Zeichen, das ordnungsgemäß kodiert, angeben (ich empfehle, die entsprechende Standard-Zeichen-Codierung zu verwenden Safe, also bei -Anwendung / xml utf-8 oder utf-16 verwenden).

Andere Tipps

In als Faustregel, die sicherste Wette, dass Ihr Dokument von allen Webservern, Proxies und Client-Browsern ordnungsgemäß behandelt wird, ist wahrscheinlich der folgende:

    .
  1. Verwenden Sie den Anwendungs- / XML-Inhaltstyp
  2. fügen Sie eine Zeichenkodierung in den Inhaltstyp ein, wahrscheinlich UTF-8
  3. fügen Sie eine passende Zeichenkodierung in das Codierungsattribut des XML-Dokuments selbst ein.
  4. in Bezug auf den RFC 3023 spec, den einige Browsern nicht ordnungsgemäß umsetzen, der Major Der Unterschied in den Inhaltstypen erfolgt, wie die Clients die Zeichenkodierung wie folgt behandeln sollen:

    für Application / XML, Application / XML-DTD, Anwendungs- / XML-external-analysiert, oder eines der Subtypen von Anwendungen / XML wie Anwendungen / Atom + XML, Anwendung / RSS + XML oder Anwendungen / RDF + XML, die Zeichenkodierung wird in dieser Reihenfolge ermittelt:

      .
    1. die Codierung, die im Charset-Parameter des Inhaltstyps HTTP-Header
    2. angegeben ist
    3. die Codierung, die im Codierungsattribut der XML-Erklärung innerhalb des Dokuments angegeben ist,
    4. utf-8.
    5. für text / xml, text / xml-external-parsperte, oder ein subtyp wie text / foo + xml, das Codierungsattribut der XML-Deklaration innerhalb des Dokuments ignoriert und die Zeichenkodierung ist: .

        .
      1. die Codierung, die im Charset-Parameter des Inhaltstyps HTTP-Header oder
      2. angegeben ist
      3. us-ascii.
      4. Die meisten Parser implementieren die Spezifikation nicht; Sie ignorieren den HTTP-Kontexttyp und verwenden einfach die Kodierung im Dokument. Mit so vielen schlecht gebildeten Dokumenten draußen, um sich nicht bald zu ändern.

Beide sind in Ordnung.

text / xxx bedeutet, dass, falls das Programm XXX nicht versteht, ist es sinnvoll, die Datei dem Benutzer als Klartext anzuzeigen.Anwendung / XXX bedeutet, dass es sinnlos ist, es zu zeigen.

Bitte beachten Sie, dass diese Inhaltstypen ursprünglich für den E-Mail-Anhang definiert wurden, bevor sie später in der Webwelt verwendet wurden.

text / xml ist für Dokumente, die einem Menschen sinnvoll sein würden, wenn er als Text ohne weitere Verarbeitung präsentiert wird, Anwendung / XML ist für alles andere

Jede XML-Entität ist für den Einsatz mit den Anwendungs- / XML-Medien geeignet Geben Sie ohne Änderung ein. Dies nutzt jedoch nicht die Tatsache, dass XML kann in vielen Fällen als Klartext behandelt werden. MIME-Benutzeragenten (und Web-Benutzeragenten), die keine explizite Unterstützung für Anwendung / XML behandelt es als Anwendung / Oktett-Stream für B. mit dem Angebot, um ihn in einer Datei zu speichern.

, um anzuzeigen, dass eine XML-Entität als einfacher Text von behandelt werden soll Standardmäßig verwenden Sie den Text- / XML-Medientyp. Dies schränkt die Kodierung ein in der XML-Entität zu denjenigen verwendet, die mit dem kompatibel sind Anforderungen an Textmedientypen, wie in [RFC-2045] beschrieben, und [RFC-2046], z. B. UTF-8, jedoch nicht UTF-16 (außer für HTTP).

- http://www.ietf.org/rfc/rfc2376.txt

Andere Antworten hier befassen sich mit der allgemeinen Frage, was das Richtige ist Content-Type für eine XML-Antwort ist, und schlussfolgern (wie bei Was ist der Unterschied zwischen text/xml und application/xml für die Webservice-Antwort?) alle beide text/xml Und application/xml sind zulässig.Es wird jedoch nicht darauf eingegangen, ob es dafür spezifische Regeln gibt Sitemaps.

Antwort:gibt es nicht.Die Sitemap-Spezifikation lautet https://www.sitemaps.org, und mit Google site: Bei Suchvorgängen können Sie bestätigen, dass die Wörter oder Ausdrücke nicht enthalten sind Mime, Mime Typ, Inhaltstyp, application/xml, oder text/xml überall.Mit anderen Worten: Über die Frage „Was“ schweigt man sich völlig aus Content-Type sollte für die Bereitstellung von Sitemaps verwendet werden.

Da in der Sitemap-Spezifikation kein Kommentar enthalten ist, der sich direkt mit dieser Frage befasst, können wir mit Sicherheit davon ausgehen, dass dieselben Regeln gelten wie bei der Auswahl Content-Type eines anderen XML-Dokuments - d. h.dass es beides sein kann text/xml oder application/xml.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top