Restriction on attribute : attribute « XML Schema « XML






Restriction on attribute



File: Data.xml

<?xml version="1.0"?>
<Books xmlns="http://www.java2s.com"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.java2s.com Schema.xsd">
        <Book Category="autobiography" InStock="true" Reviewer="R1">
                <Title>title 1</Title>
                <Author>author 1</Author>
                <Date>2008</Date>
                <ISBN>1-11111-111-1</ISBN>
                <Publisher>Publisher 1</Publisher>
        </Book>
        <Book Category = "fiction" InStock = "false" Reviewer = "R2">
                <Title>title 2</Title>
                <Author>author 2</Author>
                <Date>2007</Date>
                <ISBN>0-111-11111-1</ISBN>
                <Publisher>Publisher 2</Publisher>
        </Book>
</Books>


File: Schema.xsd
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="http://www.java2s.com"
            xmlns="http://www.java2s.com" 
            elementFormDefault="qualified">
    <xsd:element name="Books">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="Book" maxOccurs="unbounded">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="Title" type="xsd:string"/>
                            <xsd:element name="Author" type="xsd:string" maxOccurs="unbounded"/>
                            <xsd:element name="Date" type="xsd:string"/>
                            <xsd:element name="ISBN" type="xsd:string"/>
                            <xsd:element name="Publisher" type="xsd:string"/>
                        </xsd:sequence>
                        <xsd:attributeGroup ref="BookAttributes"/>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:attributeGroup name="BookAttributes"> 
        <xsd:attribute name="Category" use="required">
            <xsd:simpleType>
                <xsd:restriction base="xsd:string">
                    <xsd:enumeration value="autobiography"/>
                    <xsd:enumeration value="non-fiction"/>
                    <xsd:enumeration value="fiction"/>
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:attribute> 
        <xsd:attribute name="InStock" type="xsd:boolean" default="false"/>
        <xsd:attribute name="Reviewer" type="xsd:string" default="none"/>
    </xsd:attributeGroup>
</xsd:schema>

 








Related examples in the same category

1.anyURI type attribute
2.Required attribute
3.attribute with default value
4.reference type as attribute type and default value
5.attribute type and default value
6.attribute with fixed value
7.Define fixed value for referenced attribute type
8.fixed value for attribute type
9.Attribute based on simple type with restriction and enumeration
10.Anonymous complexType with attribute
11.Add namespace to attribute