XSD-5 Schema対象に向けるシンプルタイプ

24822 ワード

XSD-5 Schema対象に向けるシンプルタイプ
  • Schema対象に向けた簡易元素SimpleType
  • 5.1ペア値の限定minInclusive maxInclusive
  • 5.2値のセットに対する制限enumeration
  • 5.3シリーズ値に対する限定pattern
  • 5.4ホワイトスペースの限定ホワイトスペース
  • 5.5長さに対する限定レングス
  • 5 Schema対象に向かう簡易元素SimpleType
    既存のベースデータタイプの上に、あるベースデータタイプをベースに、いくつかの限定を追加します。
    <xs:element name="password">
    	<xs:simpleType>
    	  <xs:restriction base="xs:string">
    	    <xs:length value="8"/>
    	  xs:restriction>
    	xs:simpleType>
    xs:element> 
    
    XSD限定/Facets限定は、XML要素または属性定義のために許容できる値に使用されます。XML要素に対する限定はfacetと呼ばれる。XSD Restictions/Facets for Datatypes
    値の限定
    限定する
    説明
    enumeration
    許容値のリストを定義します。
    fractionDigits
    与えられた最大小数点以下の桁数を指定します。0以上でなければなりません。
    length
    許可された文字またはリスト項目の正確な数を指定します。0以上でなければなりません。
    maxExclusive
    数値の上限を指定します。許可された値はこの値より小さい必要があります。
    maxInclusive
    数値の上限を指定します。許可された値はこの値以下でなければなりません。
    maxLength
    許可された文字またはリスト項目の最大数を指定します。0以上でなければなりません。
    ミニExclusive
    数値の下限を指定します。許可された値はこの値より大きい必要があります。
    minInclusive
    数値の下限を指定します。許可された値はこの値以上でなければなりません。
    minLength
    許可された文字またはリスト項目の最小数を指定します。0以上でなければなりません。
    pattern
    許容可能な文字の正確なシーケンス(正規のマッチ)を指定します。
    Total Digits
    アラビア数字の正確な桁数を指定します。0より大きい必要があります
    ホワイトスペース
    空白文字(改行、回車、スペース、タブ)の処理方法を指定します。preserveは空白文字は一切削除されません。replaceは空白文字(改行、回車、スペース、タブ)をすべて取り除き、collappseは空白文字(改行、回車、スペース、タブはスペースに置き換えられます。先頭と最後のスペースは削除されます。複数の連続したスペースは単一のスペースに短縮されます。)
    5.1対価の限定minInclusive maxInclusive
    以下の例では、限定された「age」という要素が定義されている。ageの値は0以下であっても、または120以上であってもよい。
    <xs:element name="age" type="AgeType">
    
    <xs:simpleType name="AgeType">
      <xs:restriction base="xs:integer">
        <xs:minInclusive value="0"/>
        <xs:maxInclusive value="120"/>
      xs:restriction>
    xs:simpleType>
    
    xs:element> 
    
    5.2一組の値に対する限定enumeration
    XML要素の内容を受け入れ可能な値のセットに制限するには、エニュメレーション制約を使用します。
    以下の例では、限定的な「car」という要素が定義されています。許容できる値はAudi,Golf,BMWのみです。
    <xs:element name="car" type="carType"/>
    
    <xs:simpleType name="carType">
      <xs:restriction base="xs:string">
        <xs:enumeration value="Audi"/>
        <xs:enumeration value="Golf"/>
        <xs:enumeration value="BMW"/>
      xs:restriction>
    xs:simpleType>
    
    対応する列挙の種類は以下の通りです。
    @XmlType(name = "carType")
    @XmlEnum
    public enum CarType {
    
        @XmlEnumValue("Audi")
        AUDI("Audi"),
        @XmlEnumValue("Golf")
        GOLF("Golf"),
        BMW("BMW");
        private final String value;
    
        CarType(String v) {
            value = v;
        }
        public String value() {
            return value;
        }
        public static CarType fromValue(String v) {
            for (CarType c: CarType.values()) {
                if (c.value.equals(v)) {
                    return c;
                }
            }
            throw new IllegalArgumentException(v);
        }
    }
    
    5.3一連の値の限定pattern
    XML要素の内容制限を一連の使用可能な数字またはアルファベットとして定義するなら、パターン制約を使用します。
    以下の例では、限定された「letter」という要素が定義されています。許容できる値は小文字a-zのうちの一つです。
    <xs:element name="letter" type="LetterType">
    
    <xs:simpleType name="LetterType">
      <xs:restriction base="xs:string">
        <xs:pattern value="[a-z]"/>
      xs:restriction>
    xs:simpleType>
    
    xs:element> 
    
    許容できる値は小文字a-zのうちの1つだけである。の許容できる値は大文字A-Zの3つである。の許容できる値は大文字または小文字a-zのうちの3つである。の許容できる値はアルファベットx,yまたはzのうちの1つである。の許容できる値は5つのアラビア数字のシーケンスである。各数字の範囲は0-9:で許容できる値は、a-zのゼロまたは複数の文字である:で許容できる値はペアまたは複数の文字であり、各ペアは小文字と後の1つの大文字からなる。例えば、「sToP」はこのようなモードで検証されますが、「Stop」、「STOP」、または「stop」は検証できません。が許容できる値はmaleまたはfemale:が許容できる値は8文字からなる1行の文字です。これらの文字は大文字または小文字a-zまたは数字0-でなければなりません。
    5.4ホワイトスペースの限定ホワイトスペース
    ホワイトスペースの処理方法を決めたいなら、ホワイトスペースを使う必要があります。
    以下の例では、限定された「address」という要素が定義されています。このwhite Spaceは「preserve」に設定されています。XMLプロセッサが空白の文字を除去しないことを意味します。
    <xs:element name="address" type="AddressType">
    
    <xs:simpleType name="AddressType">
      <xs:restriction base="xs:string">
        <xs:whiteSpace value="preserve"/>
      xs:restriction>
    xs:simpleType>
    
    xs:element> 
    
    このwhite Spaceは「preserve」に限定されています。XMLプロセッサは空白の文字を削除しないことを意味します。このwhite Spaceは「replace」に限定されています。XMLプロセッサはすべての空白文字(改行、エコー、スペース、および表符)を削除します。これはXMLプロセッサがすべての空白文字を削除することを意味しています。(改行、エコカー、スペース、タブはスペースに置き換えられます。先頭と最後のスペースは削除されます。複数の連続したスペースは単一のスペースに短縮されます。):5.5長さの限定length
    要素中の値の長さを制限するには、length、maxLength、およびminLengthを使用して定義する必要があります。
    この例では、限定された「password」という要素が定義されている。その値は8文字まで正確にしなければなりません。
    <xs:element name="password">
    	<xs:simpleType>
    	  <xs:restriction base="xs:string">
    	    <xs:length value="8"/>
    	  xs:restriction>
    	xs:simpleType>
    xs:element> 
    
    この例では、限定された「password」という要素も定義されている。その値は最小5文字で、最大8文字です。
    <xs:element name="password">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:minLength value="5"/>
                <xs:maxLength value="8"/>
            xs:restriction>
        xs:simpleType>
    xs:element>
    
    上一章:XSD-4 Schema対象に向けた基礎データタイプディレクトリ:JAXBの次の章を学ぶ:XSD-6 Schema対象に向かう複合元素complexType