XML スキーマの正規表現
XML スキーマの正規表現は、pattern ファセットと共に使用され、定義済みのパターンに準拠する文字列に対する制約または制限を提供します。
pattern ファセットは、データ型の値の空白に対する制約であり、構文の空白を特定のパターンと一致するリテラルに制約することで実現されます。 pattern の値は、正規表現である必要があります。
pattern は、値の空白を、特定の正規表現と一致するリテラルで表記される値に制約します。
使用例
次の例では、米国の郵便番号の表記を作成するユーザー派生データ型を定義し、それを特定の正規表現に一致する文字列に限定します。
入力ファイル : T.xml
<zips xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="t.xsd">
<zip>12345</zip>
<zip>12345-1234</zip>
</zips>
XML スキーマ : T.xsd
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<xs:element name="zips">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="zip" type="better-us-zipcode"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="better-us-zipcode">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{5}(-[0-9]{4})?"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
正規表現で使用される文字には、メタ文字と通常の文字の 2 種類があります。 メタ文字とは、.、\、?、*、+、{、}、(、)、[、または ] のうちのいずれかです。 これらの文字は正規表現で特別な意味を持ちますが、自分自身のみを含む一連の文字列を表すアトムからエスケープできます。 エスケープされたメタ文字は、通常の文字と同じように扱われます。
通常の文字とは、メタ文字以外の任意の XML 文字です。 正規表現では、通常の文字は、通常の文字だけを含むシングルトン文字列セットを表記するアトムです。
以降のトピックでは、XML スキーマの正規表現について説明します。
XML スキーマの正規表現の詳細については、「XML スキーマ正規表現参照チャート」を参照してください。