Site Tools


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/06/13 08:32]
114.119.158.118 old revision restored (2026/06/10 20:46)
notes:xml_schema_cheat_sheet [2026/06/13 08:34] (current)
114.119.152.46 old revision restored (2026/06/03 01:43)
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 43: Line 41:
   * 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" .
  
-==== Facets / Restrictions ====+==== XML 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 152: Line 150:
 </xs:complexType></code> </xs:complexType></code>
  
- +==== 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 177: Line 174:
 <xs:group ref="persongroup"/></code> <xs:group ref="persongroup"/></code>
  
- * An Attribute group is similar for example. <code>+* An Attribute group is similar e.g. <code>
 <xs:attributeGroup name="personattrgroup"> <xs:attributeGroup name="personattrgroup">
   <xs:attribute name="firstname" type="xs:string"/>   <xs:attribute name="firstname" type="xs:string"/>
   <xs:attribute name="lastname" type="xs:string"/>   <xs:attribute name="lastname" type="xs:string"/>
-</xs:attributeGroup></code> A reference to the attribute group in a complex type would look like : <code> +</xs:attributeGroup></code> A reference to the attribute group in a complex type would look like :<code> <xs:attributeGroup ref="personattrgroup"/> </code>
- <xs:attributeGroup ref="personattrgroup"/> </code> +
- +
-  * Using <xs:any /> as an element allows elements not specified in the schema to occur. +
- +
-  * Using <xs:anyAttribute/> in a complex type allows use of attributes not specified by the schema. +
- +
-  * A substitution group allows other elements to substitute for the first. The head elemenet must be a global element (a direct child of the schema element) e.g. <code> +
-<xs:element name="name" type="xs:string"/> +
-<xs:element name="navn" substitutionGroup="name"/> +
-</code> Substitution can be blocked with <code><xs:element name="name" type="xs:string" block="substitution"/></code> +
- +
- +
-==== 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/06/13 08:34 by 114.119.152.46