XSD:独自データ型

□ゴール
<'order>
<'orderItem>
<'id>4-8443-1780-6<'/id>
<'quantity>3<'/quantity>
<'/orderItem>
<'/order>
 -id要素:
   [数字1個]+[-]+[数字4個]+[-]+[数字4個]+[-][数字1個]形式の表品番号

□作成
<'xsd:simpleType name="idType">-①
<'xsd:restriction base="xsd:string">-②
<'xsd:pattern value="d{1}-d{4}-d{4}-d{1}"/>-③
<'/xsd:restriction>-④
<'/xsd:simpleType>-⑤

 ①:新規データ型の宣言[xsd:simpleType]
   既存のデータ型(simpleType)に一定の制限を加えて新しいデータ型を作成する。
 ②:制限指定[xsd:restriction]
   ベースとなるデータ型を指定する。
 ③:形式指定(pattern要素)
   形式を正規表現で指定する。
 ④:終了タグ
 ⑤:終了タグ
 
□使用
1 :<'?xml version="1.0"?>
2 :<'xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3 :
4 : <'xsd:element name="order">
5 : <'xsd:complexType>
6 : <'xsd:sequence>
7 : <'xsd:element ref="orderItem" maxOccurs="10"/>
8 : <'/xsd:sequence>
9 : <'/xsd:complexType>
10: <'/xsd:element>
11:
12: <'xsd:element name="orderItem">
13: <'xsd:complexType>
14: <'xsd:sequence>
15: <'xsd:element name="id" type="idType"/>
16: <'xsd:element name="quantity" type="xsd:integer"/>
17: <'/xsd:sequence>
18: <'/xsd:complexType>
19: <'/xsd:element>
20:
21: <'xsd:simpleType name="idType">
22: <'xsd:restriction base="xsd:string">
23: <'xsd:pattern value="d{1}-d{4}-d{4}-d{1}"/>
24: <'/xsd:restriction>
25: <'/xsd:simpleType>
26:
27:<'/xsd:schema>

□作成2
 セレクトボックス的なやつ
 
<'xsd:simpleType name="idType">-①
<'xsd:restriction base="xsd:string">-②
<'xsd:enumeration value="4-8443-1780-6"/>-③
<'xsd:enumeration value="4-7741-1751-1"/>
<'xsd:enumeration value="4-7741-1684-1"/>
<'/xsd:restriction>
<'/xsd:simpleType>

 ②[xsd:enumeration]:指定可能な要素の指定

□作成3
 範囲付き数値

<'xsd:simpleType name="quantityType">
<'xsd:restriction base="xsd:integer">
<'xsd:minInclusive value="1"/>
<'xsd:maxInclusive value="10"/>
<'/xsd:restriction>
<'/xsd:simpleType>

□範囲指定の属性
 -min/maxInclusive:
  境界値含む加減/上限(min<'=x<'=max)
 -min/maxExclusive:
  境界値含まない加減/上限(min<'x<'max)

■エトセトラなオプション
-[use属性]必須性
 ・required:必須属性
 ・optional:任意属性
 ・prohibited:禁止属性
 -ex
  <'xsd:attribute name="id" type="idType" use="required"/>

-[default属性]デフォルト値
 -ex
  <'xsd:attribute name="quantity" type="xsd:integer" default="1"/>

-[xsd:attributeGroup要素]属性のグループ化

1 : <'xsd:element name="orderItem">
2 : <'xsd:complexType>
3 : <'xsd:sequence><'/xsd:sequence>
4 : <'xsd:attributeGroup ref="orderItemAttributes"/>
5 : <'/xsd:complexType>
6 : <'/xsd:element>
7 :
8 : <'xsd:attributeGroup name="orderItemAttributes">
9 : <'xsd:attribute name="id" type="idType" use="required"/>
10: <'xsd:attribute name="quantity" type="xsd:integer" default="1"/>
11: <'/xsd:attributeGroup>

ref:
http://www.atmarkit.co.jp/fxml/rensai2/schema06/schema06_1.html

tag : xml xsd schema

2008-08-26 00:48 : __lang__xml : コメント : 0 : トラックバック : 0 :
コメントの投稿
非公開コメント

« next  ホーム  prev »

search

ad



counter


tag cloud

category cloud