3

仕様によれば、文字 [#x10000-#xEFFFF] は XML 名で有効です。ただし、W3 バリデーターは、この XML は整形式ではないと述べています。

<?xml version="1.0"?>
<>value</>

(属性の名前は Unicode 文字#x10400 です)。Firefox などの一部のブラウザもこれに不満を持っています (Chrome は XML を表示し、IE は空白のページを表示します)。ツールのエラーですか、それとも XML が整形式ではありませんか?

4

2 に答える 2

1

はい、XML 名では補助文字を使用できます。

要素名がW3C XML 勧告のNameプロダクションで許可されている文字を使用しているため、 XML整形式です。

でも:

  • HTTP 経由でファイルを取得するオンライン バリデータは、文字エンコーディングに注意する必要があります。W3C Markup Validation ServiceがXML を取得するまでに、エンコーディング シャッフルで文字が失われているようです。

    警告ドキュメント"charset"の属性がありません"text/xml"

    Web ブラウザ ( ) から送信されたHTTPContent-Typeヘッダー ( ) にはパラメータが含まれていませんでしたが、XML サブタイプの 1 つでした。text/xmlMozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"charset"Content-Typetext/*

    関連する仕様 ( RFC 3023 ) では、そのようなドキュメントに対して の強力なデフォルトが指定されている "us-ascii"ため、他の場所で指定されたエンコーディングに関係なく、この値を使用します。

    別のエンコーディングを使用したい場合は、ブラウザがこの新しいエンコーディング情報を送信するように設定する必要があります。

    オフラインの XML パーサーを試してください。たとえば、私の Xerces-J ベースのバリデーターは、XML が整形式であると正しく識別します。

  • NAMEで許可されているすべての文字がNCNAMEで許可されているわけではないことに注意してください。そのため、整形式ではありますが、そのような文字を使用する XML は、そのような名前が許可されていない XSD に従って有効にすることはできません。

于 2016-08-12T15:40:28.247 に答える