Site Tools


Hotfix release available: 2026-07-14a "Mort". upgrade now! [57.1] (what's this?)
New release available: 2026-07-14 "Mort". upgrade now! [57] (what's this?)
Hotfix release available: 2025-05-14b "Librarian". upgrade now! [56.2] (what's this?)
Hotfix release available: 2025-05-14a "Librarian". upgrade now! [56.1] (what's this?)
New release available: 2025-05-14 "Librarian". upgrade now! [56] (what's this?)
Hotfix release available: 2024-02-06b "Kaos". upgrade now! [55.2] (what's this?)
Hotfix release available: 2024-02-06a "Kaos". upgrade now! [55.1] (what's this?)
New release available: 2024-02-06 "Kaos". upgrade now! [55] (what's this?)
Hotfix release available: 2023-04-04b "Jack Jackrum". upgrade now! [54.2] (what's this?)
Hotfix release available: 2023-04-04a "Jack Jackrum". upgrade now! [54.1] (what's this?)
New release available: 2023-04-04 "Jack Jackrum". upgrade now! [54] (what's this?)
Hotfix release available: 2022-07-31b "Igor". upgrade now! [53.1] (what's this?)
Hotfix release available: 2022-07-31a "Igor". upgrade now! [53] (what's this?)
New release available: 2022-07-31 "Igor". upgrade now! [52.2] (what's this?)
New release candidate 2 available: rc2022-06-26 "Igor". upgrade now! [52.1] (what's this?)
New release candidate available: 2022-06-26 "Igor". upgrade now! [52] (what's this?)
Hotfix release available: 2020-07-29a "Hogfather". upgrade now! [51.4] (what's this?)
notes:xml_schema_cheat_sheet

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
notes:xml_schema_cheat_sheet [2026/07/31 21:29]
114.119.158.118 old revision restored (2026/07/28 04:14)
notes:xml_schema_cheat_sheet [2026/07/31 22:07] (current)
200.75.247.128 old revision restored (2026/07/30 20:10)
Line 1: Line 1:
 ===== XML Schema ===== ===== XML Schema =====
 +
 +This is a cheat sheet for the XML Schema language. It is a follow up to the [[XML Cheat Sheet]] and summarizes [[http://www.w3schools.com/schema/default.asp | this XML Schema Tutorial]]. There is also a [[DTD Cheat Sheet].
  
   * XML Schema is an XML-based alternative to DTDs. It is the successor to DTDs because it is richer and more extensible. It describes the structure of an XML document.   * XML Schema is an XML-based alternative to DTDs. It is the successor to DTDs because it is richer and more extensible. It describes the structure of an XML document.
Line 41: Line 43:
   * By default an attribute is optional, to make it required add  use="required" .   * By default an attribute is optional, to make it required add  use="required" .
  
-==== XML Facets / Restrictions ====+==== Facets / Restrictions ====
  
   * XML Facets are restrictions on the acceptable values for elements or attributes.   * XML Facets are restrictions on the acceptable values for elements or attributes.
Line 151: Line 153:
  
  
-==== XSD Element Indicators ====+==== Element Indicators ====
  
   * Indicators control how elements are to be used within a complex element. There are three types of indicators: order indicators, occurrence indicators and group indicators   * Indicators control how elements are to be used within a complex element. There are three types of indicators: order indicators, occurrence indicators and group indicators
Line 191: Line 193:
 </code> Substitution can be blocked with <code><xs:element name="name" type="xs:string" block="substitution"/></code> </code> Substitution can be blocked with <code><xs:element name="name" type="xs:string" block="substitution"/></code>
  
-==== XSD Data Types ==== 
  
 +==== Data Types ====
 +
 +=== String Data Types ===
 +
 +  * Apart from xs:string there are two other string stypes :
 +    * xs:normalizedString - No CR, LF or TAB characters are allowed
 +    * xs:token - No CR, LF or TAB characters are allowed, no leading or trailing spaces are allowed, no sequences of more than one space is allowed
 +
 +  * There are many other types derived from string e.g. NMTOKEN, QName, ID, IDREF.
 +
 +=== Date Data Types ===
 +
 +  * date data type is used to specify a date in the format "YYYY-MM-DD" where all components are required.
 +
 +  * A time data type must be specified in the following format "hh:mm:ss" where all components are required.
 +
 +  * A dateTime datatype must be specified in the following format "YYYY-MM-DDThh:mm:ss" e.g. 2002-05-30T09:00:00
 +
 +  * A timezone can be added to a date/time/dateTime by adding a Z (for UTC) or a signed offset at the end e.g. 2002-09-24Z , 2002-09-24+06:00
 +
 +  * A duration data type must be specified in the following format "[-]PnYnMnDTnHnMnS" P is required, T is required if any time component is used and the other parts are optional e.g. P5Y, P5Y2M10DT15H, -P1Y
 +
 +  * This is a list of all date types.
 +
 +^ Type ^     Description                    ^
 +| date | Defines a date value ("YYYY-MM-DD")|
 +|dateTime |Defines a date and time value ("YYYY-MM-DDThh:mm:ss")|
 +|duration |Defines a time interval ([-]PnYnMnDTnHnMnS)|
 +|gDay |Defines a part of a date - the day (DD)|
 +|gMonth |Defines a part of a date - the month (MM)|
 +|gMonthDay |Defines a part of a date - the month and day (MM-DD)|
 +|gYear |Defines a part of a date - the year (YYYY)|
 +|gYearMonth |Defines a part of a date - the year and month (YYYY-MM)|
 +|time |Defines a time value ("hh:mm:ss") |
 +
 +=== Numeric Data types ===
 +
 +  * The xs:decimal data type specifies a positive or negative numeric value (with fractional part).
 +
 +  * The xs:integer data type specifies a positive or negative integer.
 +
 +  * These are all the numeric types, which all derive from the decimal type.
 +
 +^Name  ^Description^
 +|byte |A signed 8-bit integer|
 +|decimal |A decimal value|
 +|int |A signed 32-bit integer|
 +|integer |An integer value|
 +|long |A signed 64-bit integer|
 +|negativeInteger |An integer containing only negative values ( .., -2, -1.)|
 +|nonNegativeInteger |An integer containing only non-negative values (0, 1, 2, ..)|
 +|nonPositiveInteger |An integer containing only non-positive values (.., -2, -1, 0)|
 +|positiveInteger |An integer containing only positive values (1, 2, ..)|
 +|short |A signed 16-bit integer|
 +|unsignedLong |An unsigned 64-bit integer|
 +|unsignedInt |An unsigned 32-bit integer|
 +|unsignedShort |An unsigned 16-bit integer|
 +|unsignedByte |An unsigned 8-bit integer|
 +
 +=== Other Data Types ===
 +
 +  * xs:boolean is a booleantype which must be true or false
 +  * xs:base64Binary and xs:hexBinary specify base-46 and hexadecimal encoded binary data respectively
 +  * xs:anyURI can be used for any URL or URN.
 +  * There are also xs:double and xs:float data types.
notes/xml_schema_cheat_sheet.txt ยท Last modified: 2026/07/31 22:07 by 200.75.247.128