XML とは何ですか?
XML は、データの構造化および転送のための柔軟なマークアップ言語です。カスタマイズ可能なタグ、階層構造、およびスキーマ定義を特徴としています。HTML とは異なり、XML は表示よりもデータの表現に重点を置いています。Logto の SAML 実装のような SSO 設定を含むさまざまなアプリケーションで広く使用されています。
XML は、データの構造化および転送のための柔軟なマークアップ言語です。カスタマイズ可能なタグ、階層構造、およびスキーマ定義を特徴としています。HTML とは異なり、XML は表示よりもデータの表現に重点を置いています。Logto の SAML 実装のような SSO 設定を含むさまざまなアプリケーションで広く使用されています。
拡張可能なマークアップ言語 (XML) は、データファイル内のテキストがどのように構造化され、保存され、送信されるべきかを示すためにタグを使用します。XML は人間と機械の両方が読み取れるように設計されており、強力で高カスタマイズ可能なマークアップツールとなっています。
XML は 1996 年に World Wide Web Consortium (W3C) によって作成されました。W3C の目標は、ドキュメントの種類を定義するのに役立つ言語を作成し、カスタムタグを作成する機能を提供することでした。結果として生まれたマークアップ言語タイプにより、ページ上のデータが別のシステムと XML ファイルとして共有される前にどのようにマークアップされているかを定義することができます。2 つのシステムが同じ XML 言語 (両者が解釈できるタグを含む) を使用している限り、両方のシステムが XML ファイル形式を「理解」することができます。XML が適切に展開されると、データファイルはどのように保存され、送信されるかを問わず、アクセスするたびに同じデータと構造が正確に再現されることを保証します。
XML データはデジタルファイル内のテキストで構成されています。HTML と同様に、テキストの解釈方法を示すためにタグを挿入することで、XML ファイル用の必要な「コード」を作成します。例えば、次のようになります。
この例では、3 人のユーザーを示しています。XML コンテンツには名前、ユーザーネーム、メール、ユーザーレベルが含まれています。
これにより、アイデンティティプロバイダーとリソースプロバイダー間で共有および読み取ることができる XML ドキュメントが作成されます。
重要なのは、上記の例が XML ドキュメントの階層的な性質を示していることです。例えば:
<?xml version="1.0" encoding="UTF-8"?> は XML 宣言であり、バージョンとエンコーディングを指定します<users> がそれに該当します<user> タグでマークされた 3 つの子要素があります<user> の子要素には、<name>, <username>, <email>, <level> などの他の子要素がいくつか含まれています<user> タグには id もあり、これは XML 属性と呼ばれます。1 つの要素に同名の複数の属性を含めることはできません使用されるタグは各データタイプを示しており、プレーンテキストはデータそのものとして機能しています。また、コンテンツがどのようにインデントされているかにも注意してください。これはシステムが XML ファイルを処理するのを助けるためではなく、人間が XML ファイルとその階層順序をより簡単に閲覧してエラーや欠落を発見し、修正するのを手助けするためです。
スキーマは XML ドキュメントの「定義」として機能します。つまり、XML ファイル構造の主要なルールと制約、コンテンツとデータタイプへの制御を記述し、ドキュメント内での相互作用を管理することを意味します。これにより、異なるアプリケーションやシステム間で扱われても、XML のデータの整合性が常に保護されるようになります。
主なスキーマ言語はドキュメント型定義 (DTD) と XML スキーマ定義 (XSD) です。XSD は、その豊富な機能セット、強力なデータタイプ機能などにより、XML ドキュメントで最も一般的に使用されています。
XSD などの XML スキーマが XML ドキュメントの有効性を確保するための詳細な仕様についてであるなら、XML 構文は XML ファイルの全体的な構造を制御する一連のルールを提供します。例えば、XML 構文は、自己終了要素(追加コンテンツを必要としない単一の情報)や XML 宣言(ドキュメントの冒頭で使用され、文字エンコーディングなどの主要情報を説明)といったテキストコンテンツ、ドキュメントで使用されている XML バージョンなどをカバーすることができます。
HTML に精通している場合、XML ファイルのマークアップの展開方法は非常に似ているように見えますが、これら 2 つのマークアップ言語には重要な違いがあります。それは使用例と目的が異なることです:
この他にも、いくつかの違いがあります:
この例では:
tech:title は <http://www.example.com/tech> を名前空間として使用しており、この <title> 要素が tech 名前空間に属することを示していますbio:author は <http://www.example.com/bio> を名前空間として使用しており、この <author> 要素が bio 名前空間に属することを示していますLogto は SSO のために SAML プロトコルをサポートしています。SSO を構成する際に、アイデンティティプロバイダーは証明書やシングルサインオン URL などの重要な設定を含む XML 形式の設定ファイルを提供します。
SAML SSO を構成する際、Logto はアイデンティティプロバイダーから取得した XML 設定ファイルを直接アップロードすることを可能にし、個々の設定項目を手動で入力する必要をなくします。