ぽっくるのITざっき

IT関連技術についての覚え書きです。不定期更新です。

【XML Schema】複数xsd:patternのORによる組み合わせ

2007-12-15 19:28:42 | Weblog
以下のようなXML Schema文書を作成すると、パターン1またはパターン2のいずれかにマッチする要素を定義できる。

 <?xml version="1.0" encoding="Shift_JIS"?>
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="PatternTest" type="PatternTestType"/>
  <xsd:complexType name="PatternTestType">
   <xsd:sequence>
    <xsd:element name="Pattern" type="PatternType" maxOccurs="unbounded"/>
   </xsd:sequence>
  </xsd:complexType>
  <xsd:simpleType name="PatternType">
   <xsd:restriction base="xsd:string">
    <xsd:pattern value="[a-g]+"/>
    <xsd:pattern value="[q-z]+"/>
   </xsd:restriction>

  </xsd:simpleType>
 </xsd:schema>

以下のXML文書は妥当である。

 <?xml version="1.0" encoding="Shift_JIS"?>
 <PatternTest>
  <Pattern>abcdefg</Pattern>
  <Pattern>qrstuvwxyz</Pattern>

 </PatternTest>

【XMLパーサ】Xerces-J 2.9.0
【OS】Windows XP Professional Edition + SP2