Introduction to XSD

XSD (XML Schema Definition), a recommendation of the World Wide Web Consortium (W3C), specifies how to formally describe the elements in an Extensible Markup Language (XML) document.

XSD can be used by programmers to verify each piece of item content in a document. They can check if it adheres to the description of the element it is placed in.

 

Example

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

            xmlns:jxb="http://java.sun.com/xml/ns/jaxb"

            jxb:version="2.0">

         <xsd:element name="hello" type="helloType"/>

         <xsd:complexType name="helloType">

                 <xsd:sequence>

                          <xsd:element name="greeting" type="xsd:string"/>

                          <xsd:element name="name" type="nameType"/>

                 </xsd:sequence>

         </xsd:complexType>

         <xsd:complexType name="nameType">

                 <xsd:simpleContent>

                          <xsd:extension base="xsd:string">

                                  <xsd:attribute name="title" type="titleType">

                                  </xsd:attribute>

                          </xsd:extension>

                 </xsd:simpleContent>

         </xsd:complexType>

         <xsd:simpleType name="titleType">

                 <xsd:restriction base="xsd:string">

                          <xsd:enumeration value="Mr"/>

                          <xsd:enumeration value="Mrs"/>

                 </xsd:restriction>

         </xsd:simpleType>

</xsd:schema>   

Corresponding XML can be:

<hello>

         <greeting>Hello</greeting>

         <name title="Mr">Heartin</name>

</hello>

 

Important Points about XML Schema Definition (XSD)

  1. An XML Schema describes the structure of an XML document, similar to a DTD.

    1. XSD is the newer and preferred way over a DTD as XSD itself is an XML and can be validated.

  2. An XML document with correct syntax is called "Well Formed".

  3. An XML document validated against an XML Schema is both "Well Formed" and "Valid".

  4. XSD can contain data types

    • may contain simple types and complex types

      • Complex types describe the permitted content of an element, including its element and text children and its attributes. 

      • Simple types (also called data types) constrain the textual values that may appear in an element or attribute. 

        • XSD provides a set of 19 primitive data types

  5. XSD allows new data types to be constructed from the primitives

    • Mainly by three mechanisms:

      1. restriction (reducing the set of permitted values),

      2. list (allowing a sequence of values), and

      3. union (allowing a choice of values from several types).

    • Twenty-five derived types are defined within the specification itself, and further derived types can be defined by users in their own schemas.

 

Please go throgh the attached reference links to learn more about XML.

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)