Mega Code Archive

 
Categories / XML / XML Schema
 

Use pattern to control the extension name of image type

File: Data.xml <?xml version="1.0"?> <products xmlns ="http://www.rntsoft.com"          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"          xsi:schemaLocation="http://www.rntsoft.com Schema.xsd">       <product>           <name>name 1</name>           <image>a.gif</image>           <description>description 1</description>           <warranty>lifetime warranty</warranty>           <cost>41.95</cost>           <retailer>http://www.rntsoft.com</retailer>       </product>       <product>           <name>name 2</name>           <image>b.gif</image>           <description>description 2</description>           <cost>239.00</cost>           <retailer>http://www.rntsoft.com</retailer>       </product> </products> File: Schema.xsd <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"             targetNamespace="http://www.rntsoft.com"             xmlns="http://www.rntsoft.com"             elementFormDefault="qualified">     <xsd:element name="products">         <xsd:complexType>             <xsd:sequence>                 <xsd:element name="product" minOccurs="0" maxOccurs="unbounded">                     <xsd:complexType>                         <xsd:sequence>                             <xsd:element name="name" type="xsd:string"/>                             <xsd:element name="image" type="imageType"/>                             <xsd:element name="description" type="xsd:string"/>                             <xsd:element name="warranty" type="xsd:string" minOccurs="0"/>                             <xsd:element name="weight" type="xsd:positiveInteger" minOccurs="0"/>                             <xsd:element name="cost" type="money" maxOccurs="unbounded"/>                             <xsd:element name="retailer" type="xsd:anyURI"/>                         </xsd:sequence>                      </xsd:complexType>                 </xsd:element>             </xsd:sequence>         </xsd:complexType>     </xsd:element>     <xsd:simpleType name="money">         <xsd:restriction base="xsd:decimal">             <xsd:fractionDigits value="2"/>         </xsd:restriction>     </xsd:simpleType>     <xsd:simpleType name="imageType">         <xsd:restriction base="xsd:string">             <xsd:pattern value="(.)+\.(gif|jpg|jpeg|bmp)"/>         </xsd:restriction>     </xsd:simpleType> </xsd:schema>