私は、大規模で大量の公開 Web アプリケーションに取り組んでいます。アプリケーションの正常な動作はビジネスにとって非常に重要であるため、アプリケーションに対して実行される MI ツールが多数あります。
これらの MI ツールの 1 つは、基本的に、ページ要求ごとにブラウザーに送信される html を調べます (かなり単純化しましたが、この質問の目的のために、html を分析するツールです)。
この MI ツールが必要なデータを取得するために、head 要素にメタデータを配置します。現在、html コメントとして行っています。
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="">
<head>
<!-- details = 52:AS6[rxSdsMd4RgYXJgeabsRAVBZ:0406139009] -->
<!-- policy id = 1234567890 -->
<!-- party id = 0987654321 -->
<!-- email address = user@email.com -->
<!-- error = 49 -->
<!-- subsessionid = bffd5bc0-a03e-42e5-a531-50529dae57e3-->
...
ツールは、正規表現を使用して特定のメタデータ コメントを検索するだけです。
このデータはメタデータなので、意味的に正しいので、html メタタグに変更したいと思います。このようなもの:
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="">
<head>
<meta name="details" content="52:AS6[rxSdsMd4RgYXJgeabsRAVBZ:0406139009]" />
<meta name="policyId" content="1234567890" />
<meta name="partyId" content="0987654321" />
<meta name="emailAddress" content="user@email.com" />
<meta name="error" content="49" />
<meta name="subsessionid" content="bffd5bc0-a03e-42e5-a531-50529dae57e3" />
...
これはよりセマンティックに感じられ、正規表現を変更するだけで、MI ツールを問題なく動作させることができます。ただし、w3c バリデーターで問題が発生するようになりました。使用しているメタ名が認識されないため、検証されません。「要素メタの属性名の値の詳細が正しくありません: キーワードの詳細が登録されていません」というエラーが表示されます。これらの名前の値を WHATWG wiki に登録することをお勧めします。
私はこれを行うことができましたが、それは正しくありません。私のメタ タグの一部は「汎用」(error や emailAddress など) であるため、既に登録されている名前の値を見つけて使用することができます。ただし、それらのほとんどは業界/組織固有のものです。subsessionid または partyId と呼ばれる公開名の値を登録するのは間違っていると感じます。これらは私の組織とアプリケーションに固有のものだからです。
では、問題は、この場合のベスト プラクティスとは何ですか? それらを html コメントとして残す必要がありますか? 上記のようにメタ タグを使用し、w3c 検証が失敗することを心配する必要はありませんか? (それは組織にとってますます重要になっていますが) WHATWG wiki に自分のメタ名の値を登録しようとする必要がありますか? それとも別の解決策がありますか?
あなたの考えに感謝します、乾杯
ネイサン
最終的な解決策を表示するために編集:
私が行っている完全な答えは次のとおりです。それはRich Bradshawsの答えに基づいているので、彼は受け入れられたものですが、これは完全を期すために私が行っていることです:
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="">
<head>
<meta name="application-name" content="Our app name"
data-details="52:AS6[rxSdsMd4RgYXJgeabsRAVBZ:0406139009]"
data-policyId="1234567890"
data-partyId="0987654321"
data-emailAddress="user@email.com"
data-error="49"
data-subsessionid="bffd5bc0-a03e-42e5-a531-50529dae57e3"
/>
...
これは検証されるため、すべてのボックスにチェックが入っています:)