ISBN type by pattern : pattern « XML Schema « XML

ISBN type by pattern

File: Data.xml

<?xml version="1.0"?>
<Books xmlns=""
           xsi:schemaLocation=" Schema.xsd">
                <Title>title 1</Title>
                <Author>author 1</Author>
                <Publisher>Publisher 1</Publisher>
                <Title>title 2</Title>
                <Author>author 2</Author>
                <Publisher>Publisher 2</Publisher>

File: Schema.xsd
<?xml version="1.0"?>
<xsd:schema xmlns:xsd=""
    <xsd:simpleType name="ISBN-type">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="\d{1}-\d{5}-\d{3}-\d{1}|\d{1}-\d{3}-\d{5}-\d{1}|\d{1}-\d{2}-\d{6}-\d{1}"/>           
    <xsd:element name="Books">
                <xsd:element name="Book" maxOccurs="unbounded">
                            <xsd:element name="Title" type="xsd:string"/>
                            <xsd:element name="Author" type="xsd:string"/>
                            <xsd:element name="Date" type="xsd:gYear"/>
                            <xsd:element name="ISBN" type="ISBN-type"/>
                            <xsd:element name="Publisher" type="xsd:string"/>


Related examples in the same category

1.xs:pattern defines a pattern that must be matched by the lexical value of the datatype:
2.The xs:pattern facet is the only facet that can be applied multiple times.
3.Wildcard: integers that are multiples of 10
4.Define the intersection of the block L (all the letters) and the BasicLatin (ASCII characters below #x7F)
5.Oring and Grouping: "|" character is the "or" operator
6.Define a comma-separated list ignoring whitespaces between values and commas
7.Unicode blocks
8.Use pattern to control the extension name of image type