XSD Example – Complete XML Schema and Instance Document
Introduction – Why Use an XSD Example?
Learning the theory behind XSD is important—but seeing a real, complete example is the best way to understand how XML Schema works in practice. A well-structured example shows how to define elements, attributes, data types, and validation rules, and how to link the schema to your XML document for seamless validation.
In this guide, you’ll learn:
- How to create a complete XSD file with common elements and attributes
- How to write an XML document that conforms to the schema
- How to validate XML against XSD
- Best practices for file structure and linking
Folder Structure
project/
├── product.xsd ← XML Schema
└── product.xml ← XML file that uses the schema
product.xsd – XML Schema File
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="product">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:integer"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="price" type="xs:decimal"/>
<xs:element name="category">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="electronics"/>
<xs:enumeration value="furniture"/>
<xs:enumeration value="clothing"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute name="currency" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
This schema defines:
- A root
<product>element - Child elements:
<id>,<name>,<price>, and<category> - An attribute
currencyon<product> - A restriction on the value of
<category>using enumeration
product.xml – Valid XML Document
<?xml version="1.0"?>
<product xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="product.xsd"
currency="USD">
<id>101</id>
<name>Wireless Headphones</name>
<price>129.99</price>
<category>electronics</category>
</product>
This XML is valid:
- It matches all element names and types
- It includes the required attribute
currency - It links to the XSD using
xsi:noNamespaceSchemaLocation
Validating the XML
Tools You Can Use:
- VS Code + XML Tools extension
- Oxygen XML Editor
- Online validators like:
These tools highlight mismatches like:
- Missing elements or attributes
- Wrong data types (e.g., a string in place of an integer)
- Invalid values for restrictions (e.g., category not in list)
Best Practices
- ✔️ Keep schema and XML files in the same directory for relative linking
- ✔️ Use meaningful names and constraints for fields
- ✔️ Include
xsi:noNamespaceSchemaLocationin your XML for validation - Don’t skip required attributes if
use="required"is set - Avoid hardcoding values unless necessary—prefer flexibility via enumerations
Summary – Recap & Next Steps
This XSD example demonstrates how to structure and validate a complete XML document. It includes type enforcement, attribute declarations, and value restrictions—everything you need for a real-world XML + XSD implementation.
Key Takeaways:
- Define structure and rules in
.xsd - Link schema to XML with
xsi:noNamespaceSchemaLocation - Validate with tools to catch structural or type errors
Real-world relevance: Used in product feeds, invoice formats, B2B XML exchanges, form definitions, and config files.
FAQs – XSD Example
Is it required to link the schema in the XML?
Yes, to validate using tools, use xsi:noNamespaceSchemaLocation="file.xsd".
Can I define attributes and elements in the same complexType?
Yes. Place elements in <xs:sequence> and attributes after it.
What happens if the XML violates the schema?
The document will fail validation—tools will show exact errors.
Can I include optional elements?
Yes, use minOccurs="0" on any <xs:element>.
Can this structure be reused across multiple products?
Yes. Define global types or reference reusable schemas via <xs:include>.
Share Now :
