初心者でも簡単!XMLファイルの作り方と基本ルールをやさしく解説

Web

「システムでデータをやり取りするときにXMLファイルが必要って言われたけど、どうやって作ればいいの?」
「XMLってHTMLと似てるけど、何が違うの?」
そんな疑問を持ったことはありませんか?

XMLファイルは、システム開発やデータ管理の現場では欠かせない存在です。

ウェブサービス間のデータ交換、設定ファイル、データベースの情報保存など、様々な場面で活用されています。

最近では、スマートフォンアプリの設定やゲームのセーブデータでもXMLが使われることが多くなりました。

この記事では、プログラミング初心者の方でも理解できるように、XMLファイルの作り方を基礎から順番に説明します。

実際に手を動かしながら学べるよう、たくさんの具体例も用意しているので、安心して読み進めてください。

スポンサーリンク

XMLとは?基本的な仕組みを理解しよう

XMLの定義と特徴

XML(eXtensible Markup Language)は、データを構造化して保存・交換するためのマークアップ言語です。

「拡張可能な」という意味の通り、自分でタグを定義してデータの意味を表現できるのが大きな特徴です。

XMLの主な特徴

  • 人間が読みやすいテキスト形式
  • プラットフォームや言語に依存しない
  • 階層構造でデータを表現
  • 厳密な文法ルールがある

HTMLとの違い

多くの方がHTMLには馴染みがあると思いますが、XMLとHTMLには重要な違いがあります:

HTML

  • ウェブページの見た目を作るための言語
  • 決められたタグ(h1、p、divなど)を使う
  • ブラウザーでの表示が目的

XML

  • データの構造と意味を表現する言語
  • 自由にタグ名を決められる
  • データの保存・交換が目的

XMLが使われる場面

ウェブサービス 異なるシステム間でデータをやり取りするときのフォーマットとして使用されます。

設定ファイル アプリケーションの設定情報を保存するファイル形式として利用されます。

データベース連携 データベースからエクスポートしたデータをXML形式で保存・共有することがあります。

文書管理 Microsoft Wordの.docxファイルや、LibreOfficeの文書ファイルは実際にはXMLベースで作られています。

XMLファイルの基本ルールと文法

必須の基本ルール

ルール1:すべてのタグに終了タグが必要

XMLでは、開始したタグには必ず対応する終了タグが必要です:

<!-- 正しい書き方 -->
<title>XML入門ガイド</title>
<price>1500</price>

<!-- 間違った書き方 -->
<title>XML入門ガイド
<price>1500

ルール2:空要素の書き方

内容がないタグは、省略記法で書くことができます:

<!-- 通常の書き方 -->
<break></break>

<!-- 省略記法(推奨) -->
<break />

ルール3:ルート要素は1つだけ

XMLファイル全体を包む親要素(ルート要素)は必ず1つでなければなりません:

<!-- 正しい書き方 -->
<library>
    <book>
        <title>プログラミング入門</title>
    </book>
    <book>
        <title>データベース基礎</title>
    </book>
</library>

<!-- 間違った書き方(ルート要素が複数) -->
<book>
    <title>プログラミング入門</title>
</book>
<book>
    <title>データベース基礎</title>
</book>

ルール4:タグの入れ子は正しく

タグの入れ子構造は正しい順番で閉じる必要があります:

<!-- 正しい書き方 -->
<book>
    <title>XML入門</title>
    <author>田中太郎</author>
</book>

<!-- 間違った書き方 -->
<book>
    <title>XML入門
    <author>田中太郎</title>
</author>
</book>

タグ名の命名規則

使用できる文字

  • 英字(a-z、A-Z)
  • 数字(0-9)
  • ハイフン(-)
  • アンダースコア(_)
  • ピリオド(.)

命名時の注意点

<!-- 良い例 -->
<book-title>プログラミング入門</book-title>
<user_name>田中太郎</user_name>
<product.id>12345</product.id>

<!-- 悪い例 -->
<1book>...</1book>  <!-- 数字から始まってはいけない -->
<book title>...</book title>  <!-- 空白は使えない -->
<book/title>...</book/title>  <!-- スラッシュは使えない -->

属性の使い方

タグに追加情報を付加する場合は属性を使用します:

<book id="001" category="技術書" language="ja">
    <title>XML完全ガイド</title>
    <author>山田花子</author>
    <price currency="JPY">2800</price>
</book>

属性使用時の注意点

  • 属性値は必ずクォート(”または’)で囲む
  • 同じタグ内で同じ属性名は使えない
  • 属性の順番に意味はない

実際にXMLファイルを作成してみよう

必要なツールの準備

テキストエディター

初心者におすすめ

  • Windows:メモ帳、Notepad++
  • Mac:テキストエディット、VS Code
  • オンライン:VS Code(ブラウザー版)

本格的な開発向け

  • Visual Studio Code
  • Atom
  • Sublime Text

文字エンコーディングの設定

XMLファイルを作成する際は、文字エンコーディングをUTF-8に設定することを強く推奨します。これにより、日本語を含む多言語対応が可能になります。

ステップバイステップで作成

ステップ1:XML宣言の記述

すべてのXMLファイルの最初には、XML宣言を記述します:

<?xml version="1.0" encoding="UTF-8"?>

各部分の説明

  • version="1.0":XMLのバージョン指定
  • encoding="UTF-8":文字エンコーディングの指定

ステップ2:ルート要素の作成

全体を包むルート要素を作成します:

<?xml version="1.0" encoding="UTF-8"?>
<catalog>
    <!-- ここに商品データを書いていく -->
</catalog>

ステップ3:データ構造の設計

商品カタログを例に、必要なデータ項目を整理しましょう:

  • 商品ID
  • 商品名
  • 価格
  • カテゴリー
  • 在庫数
  • 説明

ステップ4:完成例

<?xml version="1.0" encoding="UTF-8"?>
<catalog>
    <product id="001">
        <name>ワイヤレスマウス</name>
        <price>2980</price>
        <category>パソコン周辺機器</category>
        <stock>15</stock>
        <description>静音設計で快適な操作感のワイヤレスマウスです。</description>
    </product>
    
    <product id="002">
        <name>USB-Cケーブル</name>
        <price>1280</price>
        <category>ケーブル</category>
        <stock>50</stock>
        <description>高速データ転送に対応したUSB-Cケーブル(1m)です。</description>
    </product>
    
    <product id="003">
        <name>ブルートゥーススピーカー</name>
        <price>8900</price>
        <category>オーディオ</category>
        <stock>8</stock>
        <description>コンパクトながら迫力のサウンドを楽しめるスピーカーです。</description>
    </product>
</catalog>

ファイルの保存方法

保存手順

  1. テキストエディターで上記のコードを入力
  2. 「ファイル」→「名前を付けて保存」を選択
  3. ファイル名を「catalog.xml」と入力
  4. ファイルの種類を「すべてのファイル(.)」に変更
  5. 文字エンコーディングを「UTF-8」に設定
  6. 保存をクリック

保存時の注意点

拡張子の確認 ファイル名の最後に必ず「.xml」を付けてください。これがないと、XMLファイルとして認識されません。

文字化け対策 日本語を含むXMLファイルでは、必ずUTF-8で保存してください。文字化けを防げます。

より実践的なXMLファイルの例

顧客情報管理

<?xml version="1.0" encoding="UTF-8"?>
<customers>
    <customer id="C001" membership="premium">
        <personal-info>
            <name>
                <first>太郎</first>
                <last>田中</last>
            </name>
            <email>taro.tanaka@example.com</email>
            <phone>090-1234-5678</phone>
            <birthdate>1985-03-15</birthdate>
        </personal-info>
        <address>
            <postal-code>100-0001</postal-code>
            <prefecture>東京都</prefecture>
            <city>千代田区</city>
            <street>丸の内1-1-1</street>
        </address>
        <purchase-history>
            <order date="2024-01-15" total="15600">
                <item>ノートパソコン</item>
                <item>マウス</item>
            </order>
            <order date="2024-02-20" total="8900">
                <item>外付けHDD</item>
            </order>
        </purchase-history>
    </customer>
    
    <customer id="C002" membership="standard">
        <personal-info>
            <name>
                <first>花子</first>
                <last>佐藤</last>
            </name>
            <email>hanako.sato@example.com</email>
            <phone>080-9876-5432</phone>
            <birthdate>1992-07-22</birthdate>
        </personal-info>
        <address>
            <postal-code>530-0001</postal-code>
            <prefecture>大阪府</prefecture>
            <city>大阪市北区</city>
            <street>梅田2-2-2</street>
        </address>
        <purchase-history>
            <order date="2024-03-10" total="4500">
                <item>ワイヤレスイヤホン</item>
            </order>
        </purchase-history>
    </customer>
</customers>

レストランメニュー

<?xml version="1.0" encoding="UTF-8"?>
<restaurant name="カフェ・ドゥ・パリ" location="東京都渋谷区">
    <menu>
        <category name="前菜">
            <item id="A001" vegetarian="true">
                <name>シーザーサラダ</name>
                <price>890</price>
                <ingredients>
                    <ingredient>レタス</ingredient>
                    <ingredient>トマト</ingredient>
                    <ingredient>チーズ</ingredient>
                    <ingredient>クルトン</ingredient>
                </ingredients>
                <allergens>
                    <allergen>乳製品</allergen>
                    <allergen>小麦</allergen>
                </allergens>
            </item>
            
            <item id="A002" vegetarian="false">
                <name>スモークサーモンサラダ</name>
                <price>1280</price>
                <ingredients>
                    <ingredient>スモークサーモン</ingredient>
                    <ingredient>ミックスグリーン</ingredient>
                    <ingredient>アボカド</ingredient>
                    <ingredient>クリームチーズ</ingredient>
                </ingredients>
                <allergens>
                    <allergen>魚類</allergen>
                    <allergen>乳製品</allergen>
                </allergens>
            </item>
        </category>
        
        <category name="メイン料理">
            <item id="M001" vegetarian="false">
                <name>グリルチキンのハーブ焼き</name>
                <price>1890</price>
                <cooking-time>25</cooking-time>
                <ingredients>
                    <ingredient>鶏胸肉</ingredient>
                    <ingredient>ローズマリー</ingredient>
                    <ingredient>タイム</ingredient>
                    <ingredient>じゃがいも</ingredient>
                </ingredients>
                <allergens>
                    <allergen>鶏肉</allergen>
                </allergens>
            </item>
        </category>
        
        <category name="デザート">
            <item id="D001" vegetarian="true">
                <name>ティラミス</name>
                <price>680</price>
                <ingredients>
                    <ingredient>マスカルポーネチーズ</ingredient>
                    <ingredient>エスプレッソ</ingredient>
                    <ingredient>ココアパウダー</ingredient>
                    <ingredient>レディフィンガー</ingredient>
                </ingredients>
                <allergens>
                    <allergen>乳製品</allergen>
                    <allergen>卵</allergen>
                    <allergen>小麦</allergen>
                </allergens>
            </item>
        </category>
    </menu>
</restaurant>

イベント管理

<?xml version="1.0" encoding="UTF-8"?>
<events>
    <event id="E001" type="セミナー" status="開催予定">
        <title>プログラミング入門講座</title>
        <description>
            初心者向けのプログラミング講座です。
            PythonとJavaScriptの基礎を学びます。
        </description>
        <schedule>
            <start-date>2024-04-15</start-date>
            <end-date>2024-04-15</end-date>
            <start-time>10:00</start-time>
            <end-time>17:00</end-time>
        </schedule>
        <venue>
            <name>渋谷コミュニティセンター</name>
            <address>東京都渋谷区渋谷1-1-1</address>
            <capacity>50</capacity>
        </venue>
        <organizer>
            <name>プログラミング学習会</name>
            <contact>info@programming-study.com</contact>
        </organizer>
        <registration>
            <max-participants>40</max-participants>
            <current-participants>25</current-participants>
            <fee>8000</fee>
            <deadline>2024-04-10</deadline>
        </registration>
        <topics>
            <topic>Python基礎文法</topic>
            <topic>JavaScript DOM操作</topic>
            <topic>実践プロジェクト</topic>
        </topics>
    </event>
    
    <event id="E002" type="ワークショップ" status="満員">
        <title>ウェブデザイン実践講座</title>
        <description>
            HTML、CSS、JavaScriptを使って
            実際にウェブサイトを作成します。
        </description>
        <schedule>
            <start-date>2024-04-22</start-date>
            <end-date>2024-04-23</end-date>
            <start-time>09:30</start-time>
            <end-time>16:30</end-time>
        </schedule>
        <venue>
            <name>新宿クリエイティブスペース</name>
            <address>東京都新宿区新宿2-2-2</address>
            <capacity>20</capacity>
        </venue>
        <organizer>
            <name>ウェブデザイナーズギルド</name>
            <contact>workshop@webdesign-guild.jp</contact>
        </organizer>
        <registration>
            <max-participants>20</max-participants>
            <current-participants>20</current-participants>
            <fee>15000</fee>
            <deadline>2024-04-15</deadline>
        </registration>
        <requirements>
            <requirement>ノートパソコン持参</requirement>
            <requirement>HTMLの基礎知識</requirement>
        </requirements>
    </event>
</events>

XMLファイルの確認と検証

ブラウザーでの表示確認

作成したXMLファイルをブラウザーで開くことで、構造を視覚的に確認できます:

確認手順

  1. 作成したXMLファイルを右クリック
  2. 「プログラムから開く」を選択
  3. ChromeやEdge、Firefoxなどのブラウザーを選択

ブラウザー表示の特徴

正常なXMLファイル タグが階層構造で表示され、折りたたみ・展開ができます。

エラーがあるXMLファイル エラーメッセージが表示され、問題のある行番号も示されます。

オンライン検証ツール

おすすめの検証サイト

XMLValidator.net XMLファイルの構文チェックが無料でできます。エラーがある場合は詳細な説明も表示されます。

W3Schools XML Validator 初心者にも分かりやすいエラーメッセージが特徴です。

検証ツールの使い方

  1. XMLコードをコピー
  2. 検証サイトのテキストエリアに貼り付け
  3. 「Validate」ボタンをクリック
  4. エラーがあれば修正して再度検証

よくあるエラーと対処法

文法エラー

タグの閉じ忘れ

<!-- エラー例 -->
<product>
    <name>商品名
    <price>1000</price>
</product>

<!-- 修正版 -->
<product>
    <name>商品名</name>
    <price>1000</price>
</product>

属性値のクォート忘れ

<!-- エラー例 -->
<product id=001>

<!-- 修正版 -->
<product id="001">

入れ子構造の間違い

<!-- エラー例 -->
<book>
    <title>XMLガイド
    <author>田中太郎</title>
</author>
</book>

<!-- 修正版 -->
<book>
    <title>XMLガイド</title>
    <author>田中太郎</author>
</book>

文字化けの問題

原因と対策 文字化けは主に文字エンコーディングの不一致が原因です:

  1. XML宣言でUTF-8を指定
  2. エディターでもUTF-8で保存
  3. 開く際もUTF-8で開く

実用的なXML活用方法

データのインポート・エクスポート

Excelとの連携

Excelでは、XMLファイルからデータをインポートしたり、ExcelデータをXML形式でエクスポートしたりできます:

Excelからのエクスポート手順

  1. データを選択
  2. 「ファイル」→「エクスポート」→「XML」を選択
  3. XMLスキーマを選択(または作成)
  4. エクスポート実行

データベースとの連携

多くのデータベース管理システムでは、XMLファイルからのデータインポートが可能です:

MySQLの例

LOAD XML INFILE 'products.xml'
INTO TABLE products
ROWS IDENTIFIED BY '<product>';

設定ファイルとしての活用

アプリケーション設定

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <database>
        <host>localhost</host>
        <port>3306</port>
        <username>app_user</username>
        <password>secure_password</password>
        <database-name>myapp_db</database-name>
    </database>
    
    <server>
        <port>8080</port>
        <max-connections>100</max-connections>
        <timeout>30</timeout>
    </server>
    
    <logging>
        <level>INFO</level>
        <file-path>/var/log/myapp.log</file-path>
        <max-file-size>10MB</max-file-size>
    </logging>
    
    <features>
        <feature name="user-registration" enabled="true" />
        <feature name="email-notifications" enabled="false" />
        <feature name="analytics" enabled="true" />
    </features>
</configuration>

ウェブサービスとの連携

RSS/Atomフィード

XMLは、ブログやニュースサイトのRSSフィードでも使用されています:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>テックニュース</title>
        <link>https://technews.example.com</link>
        <description>最新の技術ニュースをお届けします</description>
        <language>ja</language>
        
        <item>
            <title>新しいプログラミング言語が発表</title>
            <link>https://technews.example.com/new-language</link>
            <description>革新的な機能を持つ新言語が登場しました</description>
            <pubDate>Mon, 15 Apr 2024 10:00:00 +0900</pubDate>
        </item>
        
        <item>
            <title>AI技術の最新動向</title>
            <link>https://technews.example.com/ai-trends</link>
            <description>人工知能分野での最新の進歩について解説</description>
            <pubDate>Sun, 14 Apr 2024 15:30:00 +0900</pubDate>
        </item>
    </channel>
</rss>

より高度なXML技術

名前空間(Namespace)

複数のXMLスキーマを組み合わせる場合に使用されます:

<?xml version="1.0" encoding="UTF-8"?>
<catalog xmlns:product="http://example.com/product" 
         xmlns:inventory="http://example.com/inventory">
    
    <product:item id="001">
        <product:name>ワイヤレスマウス</product:name>
        <product:price currency="JPY">2980</product:price>
        <inventory:stock>15</inventory:stock>
        <inventory:warehouse>東京</inventory:warehouse>
    </product:item>
    
</catalog>

CDATA セクション

XMLの特殊文字をそのまま記述したい場合に使用します:

<?xml version="1.0" encoding="UTF-8"?>
<documentation>
    <code-example>
        <![CDATA[
        if (x < 10 && y > 5) {
            console.log("条件を満たしています");
        }
        ]]>
    </code-example>
    
    <html-content>
        <![CDATA[
        <div class="example">
            <p>HTMLタグをそのまま記述できます</p>
        </div>
        ]]>
    </html-content>
</documentation>

XML Schema(XSD)

XMLファイルの構造と制約を定義するためのスキーマ言語です:

商品データ用のスキーマ例

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
    <xs:element name="catalog">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="product" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="name" type="xs:string"/>
                            <xs:element name="price" type="xs:decimal"/>
                            <xs:element name="category" type="xs:string"/>
                        </xs:sequence>
                        <xs:attribute name="id" type="xs:string" use="required"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    
</xs:schema>

XMLファイル作成のベストプラクティス

設計時の考慮事項

データ構造の設計

階層構造の明確化 データの関係性を明確に表現できる階層構造を設計しましょう:

<!-- 良い例:明確な階層構造 -->
<library>
    <section name="コンピューター">
        <book>
            <title>プログラミング入門</title>
            <author>田中太郎</author>
        </book>
    </section>
</library>

<!-- 避けるべき例:フラットな構造 -->
<data>
    <section>コンピューター</section>
    <book-title>プログラミング入門</book-title>
    <book-author>田中太郎</book-author>
</data>

属性vs要素の使い分け

  • 属性:メタデータ(ID、分類、状態など)
  • 要素:実際のデータ内容
<product id="001" category="electronics" status="active">
    <name>ワイヤレスマウス</name>
    <description>高精度センサー搭載のワイヤレスマウス</description>
    <price>2980</price>
</product>

パフォーマンスの最適化

ファイルサイズの最適化

不要な空白の削除

<!-- 開発時(読みやすさ重視) -->
<product>
    <name>商品名</name>
    <price>1000</price>
</product>

<!-- 本番時(サイズ最適化) -->
<product><name>商品名</name><price>1000</price></product>

データの正規化

<!-- 最適化前:重複データが多い -->
<orders>
    <order>
        <customer-name>田中太郎</customer-name>
        <customer-email>taro@example.com</customer-email>
        <product>商品A</product>
    </order>
    <order>
        <customer-name>田中太郎</customer-name>
        <customer-email>taro@example.com</customer-email>
        <product>商品B</product>
    </order>
</orders>

<!-- 最適化後:参照による正規化 -->
<data>
    <customers>
        <customer id="C001">
            <name>田中太郎</name>
            <email>taro@example.com</email>
        </customer>
    </customers>
    <orders>
        <order customer-id="C001">
            <product>商品A</product>
        </order>
        <order customer-id="C001">
            <product>商品B</product>
        </order>
    </orders>
</data>

セキュリティ対策

XMLインジェクション対策

外部からの入力をXMLに含める場合は、特殊文字のエスケープが必要です:

<!-- 危険な例:エスケープなし -->
<comment>ユーザー入力: <script>alert('XSS')</script></comment>

<!-- 安全な例:適切なエスケープ -->
<comment>ユーザー入力: &lt;script&gt;alert('XSS')&lt;/script&gt;</comment>

主なエスケープ文字

  • <&lt;
  • >&gt;
  • &&amp;
  • "&quot;
  • '&apos;

機密情報の取り扱い

XMLファイルに機密情報を含める場合は、暗号化や適切なアクセス制御が必要です:

<!-- 避けるべき例:平文でパスワード保存 -->
<config>
    <database-password>secret123</database-password>
</config>

<!-- 改善例:暗号化された値 -->
<config>
    <database-password encrypted="true">AES256:encrypted_value_here</database-password>
</config>

トラブルシューティング

よくある問題と解決方法

文字化け問題

問題の特定

<?xml version="1.0" encoding="UTF-8"?>
<test>
    <message>こんにちは世界</message>
</test>

このXMLファイルで文字化けが発生する場合:

  1. エンコーディング設定の確認
    • XML宣言のencoding属性
    • エディターの保存エンコーディング
    • ブラウザーの表示エンコーディング
  2. 解決方法 <!-- UTF-8で統一 --> <?xml version="1.0" encoding="UTF-8"?>

パース(解析)エラー

一般的なエラーパターン

1. タグの不一致

<!-- エラー -->
<book>
    <title>XMLガイド</title>
</books>  <!-- 終了タグが間違っている -->

<!-- 修正 -->
<book>
    <title>XMLガイド</title>
</book>

2. 属性値のクォート不足

<!-- エラー -->
<product id=001 name=マウス>

<!-- 修正 -->
<product id="001" name="マウス">

3. 特殊文字のエスケープ忘れ

<!-- エラー -->
<description>価格は100円 < 200円です</description>

<!-- 修正 -->
<description>価格は100円 &lt; 200円です</description>

ファイルが開けない問題

原因と対策

  1. 拡張子の確認
    • ファイル名が「.xml」で終わっているか確認
    • Windowsで拡張子が非表示の場合は表示設定を変更
  2. 関連付けの設定
    • XMLファイルをダブルクリックで開けない場合
    • 「プログラムから開く」でブラウザーを選択
  3. ファイルの破損チェック
    • テキストエディターで開いて内容を確認
    • ファイルサイズが0バイトでないか確認

デバッグ技術

ステップバイステップ検証

1. 最小構成でテスト

<?xml version="1.0" encoding="UTF-8"?>
<test>
    <message>テスト</message>
</test>

2. 段階的に複雑化

<?xml version="1.0" encoding="UTF-8"?>
<test>
    <message id="001">テスト</message>
    <data>
        <item>アイテム1</item>
    </data>
</test>

3. 本格的なデータ追加 実際のデータを少しずつ追加して、どこでエラーが発生するかを特定します。

ログを活用したデバッグ

XMLを読み込むプログラムでは、詳細なエラーログを確認することが重要です:

// JavaScript例
try {
    const parser = new DOMParser();
    const xmlDoc = parser.parseFromString(xmlString, "text/xml");
    
    // パースエラーのチェック
    const parserError = xmlDoc.getElementsByTagName("parsererror")[0];
    if (parserError) {
        console.error("XML パースエラー:", parserError.textContent);
    }
} catch (error) {
    console.error("エラーが発生しました:", error.message);
}

まとめ

XMLファイルの作成について、基本的な仕組みから実践的な活用方法まで詳しく解説しました。

重要なポイントをまとめると

  • XMLの基本: データを構造化して表現するマークアップ言語
  • 基本ルール: 開始・終了タグの対応、ルート要素の存在、正しい入れ子構造
  • 作成方法: テキストエディターでXML宣言から始めて段階的に構築
  • 検証: ブラウザーやオンラインツールでの構文チェックが重要
  • 活用場面: データ交換、設定ファイル、文書管理など幅広い用途

コメント

タイトルとURLをコピーしました