XML Schema restriction Element

|  | Search W3Schools : |

HOME | HTML | CSS | XML | JAVASCRIPT | ASP | PHP | SQL | MORE... |  | References | Examples | Forum | About

ADVERTISEMENTS XML Certification Download XML editor Custom Programming |  |

Table of contents

Schema Tutorial
XSD HOME
XSD Intro
XSD Why Use
XSD How To
XSD <schema>
Simple Types
XSD Elements
XSD Attributes
XSD Restrictions
Complex Types
XSD Elements
XSD Empty
XSD Elements Only
XSD Text Only
XSD Mixed
XSD Indicators
XSD <any>
XSD <anyAttribute>
XSD Substitution
XSD Example
Data Types
XSD String
XSD Date
XSD Numeric
XSD Misc
XSD Editor
XSD Summary
References
XSD Reference
XSD Validator

Selected Reading

Web Statistics
Web Glossary
Web Hosting
Web Quality
W3Schools Tutorials
W3Schools Forum
Helping W3Schools

# XML Schema restriction Element

Complete XML Schema Reference

## Definition and Usage

The restriction element defines restrictions on a simpleType, simpleContent, or complexContent definition.

### Element Information

- Parent elements: simpleType, simpleContent, complexContent

### Syntax

    <restriction
    id=ID
    base=QName
    any attributes
    >

    Content for simpleType:
    (annotation?,(simpleType?,(minExclusive|minInclusive|
    maxExclusive|maxInclusive|totalDigits|fractionDigits|
    length|minLength|maxLength|enumeration|whiteSpace|pattern)*))

    Content for simpleContent:
    (annotation?,(simpleType?,(minExclusive |minInclusive|
    maxExclusive|maxInclusive|totalDigits|fractionDigits|
    length|minLength|maxLength|enumeration|whiteSpace|pattern)*)?,
    ((attribute|attributeGroup)*,anyAttribute?))

    Content for complexContent:
    (annotation?,(group|all|choice|sequence)?,
    ((attribute|attributeGroup)*,anyAttribute?))

    </restriction>

(The ? sign declares that the element can occur zero or one time inside the restriction element)

Attribute | Description
--- | ---
id | Optional. Specifies a unique ID for the element
base | Required. Specifies the name of a built-in data type, simpleType element, or complexType element defined in this schema or another schema
any attributes | Optional. Specifies any other attributes with non-schema namespace

### Example 1

This example defines an element called "age" with a restriction. The value of age can NOT be lower than 0 or greater than 100:

    <xs:element name="age">
      <xs:simpleType>
        <xs:restriction base="xs:integer">
          <xs:minInclusive value="0"/>
          <xs:maxInclusive value="100"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:element>

### Example 2

This example also defines an element called "initials". The "initials" element is a simple type with a restriction. The only acceptable value is THREE of the LOWERCASE OR UPPERCASE letters from a to z:

    <xs:element name="initials">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:element>

### Example 3

This example defines an element called "password". The "password" element is a simple type with a restriction. The value must be minimum five characters and maximum eight characters:

    <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>

### Example 4

This example shows a complex type definition using restriction. The complex type "Norwegian_customer" is derived from a general customer complex type and its country element is fixed to "Norway":

    <xs:complexType name="customer">
      <xs:sequence>
        <xs:element name="firstname" type="xs:string"/>
        <xs:element name="lastname" type="xs:string"/>
        <xs:element name="country" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Norwegian_customer">
      <xs:complexContent>
        <xs:restriction base="customer">
          <xs:sequence>
            <xs:element name="firstname" type="xs:string"/>
            <xs:element name="lastname" type="xs:string"/>
            <xs:element name="country" type="xs:string" fixed="Norway"/>
          </xs:sequence>
        </xs:restriction>
      </xs:complexContent>
    </xs:complexType>

Complete XML Schema Reference

## Learn how your website performs under various load conditions

WAPT is a load, stress and performance testing tool for websites and web-based applications. In contrast to "800-pound gorilla" load testing tools, it is designed to minimize the learning curve and give you an ability to create a heavy load from a regular workstation. WAPT is able to generate up to 3000 simultaneously acting virtual users using standard hardware configuration. Virtual users in each profile are fully customizable. Basic and NTLM authentication methods are supported. Graphs and reports are shown in real-time at different levels of detail, thus helping to manage the testing process.

Download the free 30-day trial!

WEB HOSTING
Ecommerce Components for ASP.NET
$15 Domain Name Registration Save $20 / year!
Buy UK Domain Names Register Domain Names
Cheap Domain Names Cheap Web Hosting
Best Web Hosting
PHP MySQL Hosting
Top 10 Web Hosting
UK Reseller Hosting
Web Hosting
FREE Web Hosting

WEB BUILDING
Website Templates Flash Templates Website Builder Internet Business Opportunity
Custom Programming
FREE Trial or Demo Web Content Manager Forms,Web Alerts,RSS
Download XML editor
FREE Flash Website
FREE Web Templates

EDUCATION
US Web Design Schools
HTML Certification
JavaScript Certification
XML Certification
PHP Certification
ASP Certification

HOME or Top of Page |  | Printer Friendly
W3Schools is for training only. We do not warrant the correctness of its content. The risk from using it lies entirely with the user. While using this site, you agree to have read and accepted our terms of use and privacy policy. Copyright 1999-2009 by Refsnes Data. All Rights Reserved.