[ATD] 属性宣言
ATD1 属性はローカルとして定義するべきである。
ATD2 xsd:anyAttributeは使用するべきではない。
[ATN] 属性の命名
ATN1 ローカルな属性を定義する場合、属性を宣言する要素と同じ名前を付けるのは望
ましくない。
[CTD] 複合型定義
CTD1 xsd:anyTypeをベースとした派生は行うべきではない。
CTD2 空の複合型宣言<xsd:complexType/>は含めるべきではない。
CTD3 同じ複合型を持つ要素が複数宣言される場合、共通する型を名前付きで定義し参
照するようにするのが望ましい。
CTD4 xsd:any要素の使用は望ましくない。
CTD5
内容要素として宣言する要素の出現回数として minOccurs="0" maxOccurs="0"と 記述すべきではない。
CTD6 xsd:allの使用は望ましくない。
[DOC] 付属説明に関して
DOC1 xsd:annotation 要素の xsd:documentation 要素を使った説明文は簡潔に記述するこ
とが望ましい。
DOC2 ルート要素宣言にはxsd:annotation、或いはコメントを使用してルート要素である
ことを明示的に示さなければならない。
DOC3 xsd:appInfoを使用してはならない。
[ELD] 要素宣言
ELD1 substitutionGroupによる代替要素は使用しないのが望ましい。
ELD2 要素のabstract指定は使用しないのが望ましい。
[ETN] 要素の命名
ETN1 要素名が複数の単語から成る場合、UpperCamelCaseルールを採用するのが望まし
い。
[GNR] 共通命名規定
GNR1 マルチバイト文字(漢字、ひらがな、カタカナなど)は使用してはならない。
GNR2 名前には英単語を使用するのが望ましい。
GNR3 冗長な名前は避け、簡潔で情報を的確に識別する名前を付けるべきである。
GNR4 略語の使用は控えるべきである。
GNR5 他の標準スキーマをインポートして使用する場合、他の名前空間で宣言されてい
る要素、型、また属性と重複した名前を使うことを避けるのが望ましい。
[GXS] XMLスキーマの一般通則
GXS1 全てのスキーマファイルの先頭に文字コード指定を含めた XML宣言を記述しな
ければならない。
GXS2 XML宣言に含まれる文字コード指定にはUTF-8を指定するのが望ましい。
GXS3 W3C XML Schema の名前空間接頭辞は"xsd"、或いは"xs"を使用するのが望まし
い。
GXS4
作成する標準スキーマに名前空間を割り当て、それを対象名前空間として宣言し なければならない。
GXS5 デフォルトの名前空間宣言は対象名前空間だけに許されることが望ましい。
GXS6 実際に使用しない、或いはインポートを行わない名前空間の接頭辞宣言を含める
べきではない。
GXS7 elementFormDefault="qualified"と指定するのが望ましい。
GXS8 attributeFormDefault="unqualified"と指定するのが望ましい。
GXS9 スキーマにDOCTYPE宣言(スキーマ自体を XML文書と見立ててそのDTDを
示すための宣言)を含めてはならない。
GXS10 標準スキーマ自体が書かれた言語を識別するため、xml:lang属性を使用して言語
を指定しなければならない。
GXS11 空のインポート宣言を含めるのは望ましくない。
GXS12
事前にスキーマ記述の形式を定め、それに沿ってスキーマを作成するのが望まし い。
GXS13 スキーマ定義の順番を定め、それに沿って記述を行うのが望ましい。
GXS14 更新日、更新者、更新のベースとなったバージョンなど履歴情報をスキーマに含
めるのが望ましい。
GXS15 スキーマファイル名にもバージョン番号を含めるのが望ましい。
GXS16 作成するスキーマの要件を満たす既存の標準スキーマがあれば、それをインポー
トして使用するのが望ましい。
GXS17 xsd:redefineを使用するのは望ましくない。
[IND] インスタンス文書
IND1 スキーマを公開する際、サンプルとなるインスタンスも共に公開するのが望まし
い。
IND2
全てのサンプル・インスタンスには文字コード指定を含む XML宣言が含めるべ きである。
IND3 公開するサンプル・インスタンスには xsi:schemaLocation を使い、対応するスキ
ーマファイルを指定するべきである。
[NMS] 名前空間
NMS1 名前空間にURIを使用してもよい。
NMS2 対象名前空間にバージョン情報を含めるのが望ましい。
NMS3 一度公開された標準スキーマの対象名前空間は変更してはならない。
[RED] ルート要素宣言
RED1 複数の異なる名前空間を持つスキーマファイルから構成されている標準の場合、ルート
要素宣言は最上位に位置するスキーマファイルに含めるのが望ましい。
[SSM] スキーマ構成のモジュール化
SSM1
インクルード(インポート)を行うスキーマファイルからインクルード(インポ ート)されるスキーマファイルを矢印で表した時、他のスキーマファイルを介し て矢印が自分に戻ってくるような循環的なインクルード(インポート)を行うこ とは望ましくない。
SSM2 実際に使用するスキーマ定義を含むスキーマファイル以外の不要なスキーマフ
ァイルをインクルード(インポート)するべきではない。
SSM3
あるスキーマファイル中の定義で、他のスキーマファイルで定義されている要素 や型を参照している場合、そのスキーマファイルを明示的にインクルードするこ とが望ましい。
SSM4 インクルード対象となるスキーマ・ファイルにもすべて標準スキーマの対象名前
空間宣言を含めるのが望ましい。
SSM5
対象名前空間が宣言されていないスキーマをインポートしてはならない(インポ ート宣言にはnamespace属性が含められなければならない)。
[STD] 単純型定義
STD1 xs:unionの使用は望ましくない。
STD2 xsd:patternで正規表現を使用して単純型を定義する際、XML Schema規格が定め
る規定に沿っているかどうか細心の注意を払わなければならない。
STD3 xsd:enumerationは、列挙値の数が膨大である場合は使用しないのが望ましい。
[TDN] 型の命名
TDN1 型の場合、型名の最後に"〜Type"と付けるのが望ましい。
TDN2 定義される型が特定の要素だけに使用される場合、その要素名を型名に含めるの
が望ましい。