XML ファイルの編集および検査のサンプル詳細 |
||||||||||
サンプルの概要これは、XML エディター内の一部のガイド付き編集フィーチャーを使用して XML ファイルの編集および検証方法を説明した、一連のサンプルです。
DTD または XML スキーマの制約を伴う XML ファイルの編集についての詳細は、XML エディターのオンライン・ヘルプを参照してください。
|
||||||||||
anyElementこのサンプルは、XML スキーマの任意のエレメントを使用して、XML 文書に拡張可能なコンテンツ・モデルを作成する方法を示します。 サンプルは、次の 2 つのディレクトリーに分かれます。
## 任意の名前空間の使用anyNamespace ディレクトリーの下の Book.xsd スキーマの複合タイプは BookType です。
BookType のコンテンツは、title (タイトル)、author (作成者)、year (年)、isbn、および then (次に) で、オプションで、以下の任意のエレメントが示す整形式の XML が続きます。
これは、インスタンス・ドキュメントには、任意の XML エレメントを挿入して、BookType 定義を拡張できることを意味します。 このサンプルには、ほかに Publisher.xsd と Reviewer.xsd の 2 つのスキーマがあります。 インスタンス・ドキュメントでは、これらを使用して BookType の定義を拡張します。 これら 2 つのスキーマは名前空間が異なることに注意してください。 BookRev.xml は、xsi:schemaLocation 属性によって Book.xsd と Reviewer.xsd の両方に関連付けられています。 これは、BookType を検閲者 (reviewer) エレメントによって拡張し、ブックに検閲コメントを付ける方法を示します。
特定名前空間の使用specifiedNamespace ディレクトリーの下の Book.xsd スキーマの複合タイプは BookType です。
BookType のコンテンツは、title (タイトル)、author (作成者)、year (年)、isbn、および then (次に) で、オプションで、以下の任意のエレメントが示す、名前空間 http://www.wesley.com に属する整形式の XML が続きます。
これは、インスタンス・ドキュメントには、任意の XML エレメントを挿入して、BookType 定義を拡張できることを意味します (それらのエレメントが名前空間 http://www.wesley.com に属している場合に限り)。 このサンプルで、Reviewer.xsd ファイルはこの名前空間に属しています。 Book.xml は、xsi:schemaLocation 属性によって Book.xsd と Reviewer.xsd の両方に関連付けられています。 これは、BookType を検閲者 (reviewer) エレメントによって拡張し、ブックに検閲コメントを付ける方法を示します。 Book.xml の場合、XML エディターの「設計」ビューで、rev:reviewer エレメントを選択します。 ポップアップ・メニューから、「子の追加」->「コメント」」を選択して、検閲者のコメントを追加します。 「検証」を実行して、ドキュメントが有効であることを確認します。 任意のエレメントのスキーマからのインスタンスの生成この新規 XML ウィザードは、XML スキーマのインスタンスを作成する際に使用できます。 スキーマに、名前空間 uri を指定した任意のエレメントが含まれている場合は (specifiedNamespace ディレクトリーの Book.xsd からの BookTypeのような)、ウィザードから、これらの名前空間のスキーマ・ロケーションを入力するようにプロンプトが出されます。
名前空間の XML 文書への追加XML エディターには、名前空間を XML 文書に追加する便利な手段があります。 名前空間を手動で追加 (ソース・ビューで入力) するとエラーになりやすく、スキーマ名前空間 URI の場合は簡単につづりを誤り、スキーマ・ロケーションの属性構文は扱いにくい場合があります。 作業の助けとなる役立つダイアログがあります。 「アウトライン」または「設計」ビューで「スキーマ情報の編集」ダイアログにアクセスして、この作業での助けとすることができます。
|
||||||||||
InvoiceInvoice.dtd ファイルには、Invoice.xml ファイルのコンテンツを定義するためのルールがあります。 これは、DOCTYPE 宣言によって Invoice.xml に関連付けられています。. シーケンス・コンテンツ・モデル送り状 (Invoice) エレメントには、以下のようなコンテンツ・モデルがあります。
XML エディターの「設計」ビューで、送り状 (Invoice) エレメントを選択します。 ポップアップ・メニューから、「子の追加」->「項目 (Item)」を選択して、項目 (Item) を送り状 (Invoice) エレメントに追加します。 これを繰り返して、必要な数の項目 (Item) を送り状 (Invoice) エレメントに追加できます。 コンテンツ・モデルの選択日付エレメントには、以下に似たコンテンツ・モデルがあります。
この 2 つのグループは、XML エディターの「設計」ビューで簡単に切り替えることができます。 最初に、複数の月 (Month)、日 (Day)、および年 (Year) エレメントを選択します (これらを選択しながら Ctrl キーを押し続けます)。 次にポップアップ・メニューから、「置換」-> 「(日、月、年 (Day, Month, Year)」を選択して、それを 2 次グループに置き換えます。 列挙型属性タイプ項目 (Item) エレメントには、その値を 上位変換 (promotion)か通常 (regular) のいずれかに設定できる属性の割引 (discount) があります。 XML エディターの「設計」ビューで、割引 (discount) 属性を選択します。 コンボ・ボックスが表示され、この 2 つの値から選択できます。 あるいは、「ソース (Source)」ビューで、割引 (discount) 属性のコンテンツ・アシストを選択して、この 2 つの値から選択できます。 |
||||||||||
PurchaseOrder.xml の編集PurchaseOrder.xsd ファイルには、PurchaseOrder.xml ファイルのコンテンツを定義するためのルールがあります。 このファイルは、xsi:schemaLocation 属性によって PurchaseOrder.xml ファイルに関連付けられています。 オカレンス制約PurchaseOrder.xsd では、項目 (Item) エレメント (複合タイプ項目 (Item) の下の) に minOccurs=0 のオプション shipDate エレメントがあります。
PurchaseOrder.xml の場合は、XML エディターの「設計」ビューで、項目 (Item) エレメントの下の最初の項目 (Item) を選択します。 ポップアップ・メニューから、「子の追加」->「shipDate」」を選択して、shipDate を項目 (Item) エレメントに追加します。 値が現在日付に設定された shipDate エレメントが追加されます。 多くても 1 つの shipDate エレメントを持つという制約が満たされているため、「子の追加」ポップアップ・メニューには shipDate オプションがなくなっていることに注意してください。 shipDate エレメントを選択し、ポップアップから「除去」を選択してそれを除去する場合は、「子の追加」-> 「shipDate」 オプションを再度使用できます。 列挙型エレメント・タイプPurchaseOrder.xsd では、USAddress 複合タイプに、そのタイプがシンプル・タイプ USState であるエレメント州 (state) があります。
USState シンプル・タイプは、以下のような列挙型ファセットのストリングから派生します。
インスタンス・ドキュメントでの派生型の使用 (xsi:type 属性)ipo.xml ファイルは、商品を英国に配送し、勘定書が米国の住所に送られる方法を示しています。 ipo.xsd で、billTo および shipTo エレメントが、以下のアドレス (Address) タイプとして定義されています。 <element name="shipTo" type="ipo:Address"/> <element name="billTo" type="ipo:Address"/>address.xsd では、2 つの複合タイプ USAddress および UKAddress で基本型アドレス (Address) を拡張します。 インスタンス・ドキュメント、 ipo.xml は、xsi:type 属性を使用することによって、アドレス (Address) のさまざまな導出 (たとえば、USAddress) を使用できます。 XML エディターの「設計」ビューで、shipTo エレメントの下の xsi:type 属性を選択します。 コンボ・ボックスを使用して、使用するアドレス (Address) タイプを選択する方法に注意してください。 ガイドによる支援は、コンボ・ボックスで選択するタイプによって決まります。 複数のスキーマおよび名前空間の処理季刊レポート・サンプルは、さまざまな名前空間からの複数のスキーマを処理する方法を示します。 このサンプルには、PurchaseOrder/international フォルダーの下に、 address.xsd、ipo.xsd、report.xsd および report.xml のファイルが組み込まれています。 スキーマが大きくなるにつれ、保守、再利用および読み易さなどの目的から、そのコンテンツをいくつかのスキーマ・ドキュメントに分割することがしばしば望まれます。
XML スキーマは、このサポートのために、インクルード (include) およびインポート (import) の 2 つの構成を定義します。
インクルード (include) エレメントは、組み込まれたスキーマからの定義および宣言を現在のスキーマに取り入れます。
これには、組み込まれたスキーマが組み込むスキーマと同じターゲット名前空間内にある必要があります。
インポート (import) エレメントの動作は、インポートされたスキーマが異なる名前空間からくることができる点を除き、類似しています。
|
||||||||||
置換グループの使用XML スキーマでは、エレメントの名前付きグループをその他のエレメントで代替することができます。 Catalogue.xsd ファイルは、ブック (Book) および マガジン (Magazine) がパブリケーション (Publication) による置換グループ内にあることを宣言します。 <element name="Book" type="Catalogue:BookType"カタログ (Catalogue) のコンテンツは、置換グループ内の任意のエレメントです。 XML エディターの「設計」ビューで、カタログ (Catalogue) エレメントの「子の追加」メニューを選択します。 ブック (Book) および マガジン (Magazine) の両方が パブリケーション (Publication) エレメントのコンテンツとして代替する方法に注意してください。 さらに、パブリケーション (Publication) エレメントを 要約 (abstract) として宣言し、パブリケーション (Publication) エレメントがインスタンス・ドキュメント内で直接使用されないようにしています。 |