Lược đồ Schema XML Tham khảo nhanh các kiểu dữ liệu

XML Schema - Data Types
Quick Reference
ver 1/03
Namespaces
•
•
2
atomic
binary-valued logic legal literals {true, false, 1, 0}
§3.2.1.2 pt2
derived
nonPositive
nonPositiveInteger
derived integer
positiveInteger
derived
nonNegativeInteger
short
derived int
unsignedByte
derived
unsignedShort
derived
unsignedLong
derived
nonNegative
unsignedInt
Binary Data Types
atomic
Base64-encoded arbitrary binary data.
atomic
Arbitrary hex-encoded binary data. Example, “0FB7” is a
hex encoding for 16-bit int 4023 (binary 111110110111).
§3.2.15 pt2
§3.2.16 pt2
Text types
anyURI
atomic
language
derived
token
derived
string
atomic
normalizedString
string
token
5
negativeInteger
Logic Types
base64Binary
hexBinary
4
§3.1 pt2
http://www.w3.org/2001/XMLSchema
http://www.w3.org/2001/XMLSchema-datatypes
boolean
3
derived integer
n o n N e g a t i v e I n t e g e r derived integer
©2002, 2003 D Vint Productions
xmlhelp@ dvint.com
http://w w w .xm l.dvint.com
1
long
derived
normalizedString
A Uniform Resource Identifier Reference (URI). Can be
absolute or relative, and may have an optional fragment
identifier.
§3.2.17 pt2
natural language identifiers [RFC 1766]
Example: en, fr.
§3.3.3 pt2
White space normalized strings
§3.3.1 pt2
Character strings in XML
§3.2.1 pt2
Tokenized strings.
§3.3.2 pt2
unsignedLong
unsignedShort
6
derived unsignedInt
Date Tim e T y p e s
date
atomic
dateTime
atomic
duration
atomic
Number Types
byte
derived short
decimal
atomic
double
atomic
float
atomic
int
derived long
integer
derived decimal
127 to-128. Sign is omitted, “+” assumed.
Example: -1, 0, 126, +100.
§3.3.19 pt2
Arbitrary precision decimal numbers. Sign
omitted, “+” is assumed. Leading and trailing
zeroes are optional. If the fractional part is
zero, the period and following zero(es) can be
omitted.
§3.2.3 pt2
Double-precision 64-bit floating point type legal literals {0, -0, INF, -INF and NaN} Example, -1E4, 12.78e-2, 12 and INF §3.2.5 pt2
32-bit floating point type - legal literals {0, -0,
INF, -INF and NaN} Example, -1E4,
1267.43233E12, 12.78e-2, 12 and INF
§3.2.4 pt2
2147483647 to -2147483648. Sign omitted, “+”
is assumed. Example: -1, 0, 126789675,
+100000.
§3.3.17 pt2
Integer or whole numbers - Sign omitted, “+”is
assumed. Example: -1, 0, 12678967543233,
+100000.
§3.3.13 pt2
9223372036854775807 to 9223372036854775808. Sign omitted, “+”
assumed.
Example: -1, 0, 12678967543233, +100000.
§3.3.16 pt2
Infinite set {...,-2,-1}.
Example: -1, -12678967543233, -100000.
§3.3.15 pt2
Infinite set {0, 1, 2,...}. Sign omitted, “+”
assumed.
Example: 1, 0, 12678967543233, +100000.
§3.3.20 pt2
Infinite set {...,-2,-1,0}. Example: -1, 0, 126733, -100000.
§3.3.14 pt2
Infinite set {1, 2,...}. Optional “+” sign,. Example: 1, 12678967543233, +100000.
§3.3.25 pt2
32767 to -32768. Sign omitted, “+” assumed.
Example: -1, 0, 12678, +10000.
§3.3.18 pt2
0 to 255. a finite-length
Example: 0, 126, 100.
§3.3.24 pt2
0 to 4294967295
Example: 0, 1267896754, 100000. §3.3.22 pt2
0 to 18446744073709551615.
Example: 0, 12678967543233, 100000.
§3.3.21 pt2
0 to 65535.
Example: 0, 12678, 10000.
§3.3.23 pt2
Calendar date.Format CCYY-MM-DD. Example, May the
31st, 1999 is: 1999-05-31.
§3.2.9 pt2
Specific instant of time. ISO 8601 extended format
CCYY-MM-DDThh:mm:ss. Example, to indicate 1:20 pm
on May the 31st, 1999 for Eastern Standard Time which
is 5 hours behind Coordinated Universal Time (UTC):
1999-05-31T13:20:00-05:00.
§3.2.7
pt2
A duration of time. ISO 8601 extended format
PnYn MnDTnH nMn S. Example, to indicate duration of 1
year, 2 months, 3 days, 10 hours, and 30 minutes:
P1Y2M3DT10H30M. One could also indicate a duration
of minus 120 days as: -P120D.
§3.2.6 pt2
Gregorian day. Example a day such as the 5th of the
month is --05.
§3.2.13 pt2
gDay
atomic
gMonth
gMonthDay
atomic
Gregorian month. Example: May is --05--
atomic
Gregorian specific day in a month.
Example: Feb 5 is --02-05.
§3.2.12 pt2
Gregorian calendar year. Example, year 1999, write:
1999.
§3.2.11 pt2
Specific gregorian month and year.
Example, May 1999, write: 1999-05.
§3.2.10 pt2
An instant of time that recurs every day. Example, 1:20
pm for Eastern Standard Time which is 5 hours behind
Coordinated Universal Time (UTC), write: 13:20:0005:00.
§3.2.8 pt2
gYear
atomic
gYearMonth
atomic
tim e
atomic
7
§3.2.14 pt2
XML Types
Name
NCName
derived
token
derived
Name
XML Names
§3.3.6 pt2
XML “non-colonized” Names.
§3.3.7 pt2
atomic
NOTATION type
§3.2.19 pt2
N O T A T IO N
atomic
XML qualified names
§3.2.18 pt2
QName
Following types should only be used in attribute declaration for XML compatibility:
ENTITY
ENTITIES
ID
IDREF
IDREFS
NMTOKEN
NMTOKENS
8
ENTITY attribute type
§3.3.11 pt2
ENTITIES attribute type
§3.3.12 pt2
ID attribute type
§3.3.8 pt2
IDREF attribute type
§3.3.9 pt2
IDREFS attribute type
§3.3.10 pt2
NMTOKEN attribute type
§3.3.4 pt2
NMTOKENS attribute type
§3.3.5 pt2
Built-in Types
anyType
anySimpleType
9
derived
NCName
derived
ENTITY
derived
NCNAME
derived
NCName
derived
IDREF
derived
token
derived
NMTOKENS
ur-type
definition
ur-type
definition
Built-in Complex type definition of Ur-Type. §3.4.7 pt1
Built-in Simple type definition of Ur-Type.
Sim p le Data Type Declaration
§4.1.6 pt2
§4.1.2 pt2
Note: All schema components allow attributes from non-schema namespaces.
<simpleType id = ID
final = ( ‘#all’| ( ‘list’| ‘union’| ‘restriction’))
name = NCName>
Content: ( annotation ?, ( restriction | list | union )) </simpleType>
<list id = ID
itemType = QName>
Content: ( annotation ?, ( simpleType ?)) </list>
<union id = ID
memberTypes = List of QName>
Content: ( annotation ?, ( simpleType *)) </union>
<restriction id = ID
base = QName>
Content: ( annotation ?, ( simpleType ?, ( minExclusive | minInclusive |
maxExclusive | maxInclusive | totalDigits | fractionDigits | length | minLength |
maxLength | enumeration | whiteSpace | pattern )*)) </restriction>
.
Schema Component Name
(typically prefixed with xsd:)
Required Attribute
Optional Attributes
Content Model of
Schema Component
Data Type
String Value
<notation id = ID
name = NCName
maxOccurs = ( nonNegativeInteger | ‘unbounded’) : 1
type = QName >
Content: ( (annotation | (simpleType | complexType | group |
Attribute Default Value
attributeGroup))*)
</notation>
<enumeration id = ID
value = anySimpleType >
Content: (annotation?) </enumeration>
<whiteSpace id = ID
fixed = boolean : false
value = ( ‘collapse’| ‘preserve’|
‘replace’) >
Content: (annotation?) </whitespace>
IDREFS
u
u
u
<fractionDigits id = ID
fixed = boolean : false
value = nonNegativeInteger >
Content: (annotation?) </fractionDigits>
u
u
u
u
u
u
byte - 127 to-128
u
u
u
u
u
u
u
date - CCYY-MM-DD
u
u
u
u
u
u
u
dateTime - CCYY-MM-DDThh:mm:ss
decimal - Arbitrary precision decimal
numbers
double - Double-precision 64-bit floating
point
duration - PnYn MnDTnH nMn S
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
float - 32-bit floating point type
u
u
u
u
u
u
u
gDay
u
u
u
u
u
u
u
gMonth
u
u
u
u
u
u
u
gMonthDay
u
u
u
u
u
u
u
gYear
u
u
u
u
u
u
u
gYearMonth
u
u
u
u
u
u
u
u
u
u
ENTITY
u
u
u
hexBinary
u
u
u
u
u
u
ID
u
u
u
u
u
u
u
fra c tio n D ig its
\s
space characters (space, tab,
newline, return)
u
u
u
\S
non-Space characters
integer
u
u
u
u
u
u
u
u
u
\i
initial XML name characters
(letter _ ;)
language - RFC 1766] Example: en, fr
u
u
u
u
u
u
list
long - 9223372036854775807 to 9223372036854775808
Name
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
NCName
u
u
u
u
u
u
u
u
u
NMTOKEN
u
u
u
u
u
u
NMTOKENS
u
u
u
u
u
\I
u
u
u
u
u
not initial XML name characters
XML NameChar characters
u
\c
u
u
u
u
u
u
\C
not XML NameChar characters
\d
decimal digits
\D
not decimal digits
nonNegativeInteger
u
u
u
u
u
u
u
u
u
\w
XML Letter or Digit characters
nonPositiveInteger
u
u
u
u
u
u
u
u
u
\W
not XML Letter or Digit characters
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
normalizedString
u
u
u
u
u
u
NOTATION
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
string
u
u
u
tim e - h h : m m : s s
token
u
u
u
\p{IsBasicLatin} block escape identifying ASCII characters, similar IsGreek, IsHebrew, IsThai
for these ranges of Unicode
blocks
\p{L}
all Letters
\p{M}
all Marks
\p{N}
all Numbers
\p{P}
all Punctuation
\p{Z}
all Separators
\p{S}
all Symbols
\p{C}
all Others. Additional modifying values like Lu = uppercase,
Ll = lowercase, Nd = decimal
digit, Sm = math symbols,
Sc = currency
\P{}
not the block or category,
\P{IsGreek} = not Greek block
Pattern Examples
Expression
M a tch(es)
Chapter \d
Chapter 0, Chapter 1, Chapter 2....
Chapter\s\w
Chapter followed by a single whitespace character (space,
tab, newline, etc.), followed by a word character (XML 1.0
Letter or Digit)
Espan&#xF1;ola
Española
u
u
union
u
u
unsignedByte - 0 to 255
u
u
u
u
u
u
u
u
u
unsignedInt - 0 to 4294967295
unsignedLong - 0 to
18446744073709551615
unsignedShort - 0 to 65535
u
u
u
u
u
u
u
u
u
\p{Lu}
any uppercase character, the value of \p{} (e.g. “Lu”) is
defined by Unicode
u
u
u
u
u
u
u
u
u
a*x
x, ax, aax, aaax....
u
u
u
u
u
u
u
u
u
a?x
ax, x
a+x
ax, aax, aaax....
(a|b)+x
ax, bx, aax, abx, bax, bbx, aaax, aabx, abax, abbx, baax,
babx, bbax, bbbx, aaaax....
[^0-9]x
any non-digit character followed by the character x
\Dx
any non-digit character followed by the character x
.x
any character followed by the character x
.*abc.*
1x2abc, abc1x2, z3456abchooray....
ab{2}x
abbx
ab{2,4}x
abbx, abbbx, abbbbx
ab{2,}x
abbx, abbbx, abbbbx....
(ab){2}x
ababx
S p e c i a l C h a r a c t e r s n e e d i n g t o b e e s c a p e d w i t h a ‘\’
Character References
u
all characters except newline
and return
u
\|.-^?*+{}()[]
u
. (dot)
u
u
u
tab
u
1 2 Regular Expressions for Pattern Facet
§4.3.4 pt2
§Appendix D pt0, §Appendix F pt2
boolean
ENTITIES
fra c tio n D ig its
u
to ta lD ig its
u
u
\t
u
QName
m in Inc lu siv e
u
m in E x c lu s iv e
w hite S p a c e
u
m a x E x c lu s iv e
e n u m e ra tio n
u
m a x In c lu s ive
p atte rn
u
m a x L en g th
u
le n g th
m in L e n g th
anyURI
base64Binary
Simple Data Type
u
return
u
positiveInteger
§4.1.5 pt2,
Appendix B pt0
u
\r
u
short - 32767 to -32768
1 1 Si m p le D at a T ypes and Constrai ni ng Fa c e ts
u
Special Character Sequences
\n
newline
int - 2147483647 to -2147483648.
negativeInteger
<totalDigits id = ID
fixed = boolean : false
value = positiveInteger >
Content: (annotation?) </totalDigits>
u
to ta lD igits
<minExclusive id = ID
fixed = boolean : false
value = anySimpleType >
Content: (annotation?) </minExclusive>
u
m in In c lu s iv e
<pattern id = ID
value = anySimpleType >
Content: (annotation?) </pattern>
u
m in E x clu s iv e
<minInclusive id = ID
fixed = boolean : false
value = anySimpleType />
Content: (annotation?) </minInclusive>
u
m a x E xc lu siv e
<maxLength id = ID
fixed = boolean : false
value = nonNegativeInteger >
Content: (annotation?) </maxLength>
IDREF
w h ite S p ac e
<maxExclusive id = ID
fixed = boolean : false
value = anySimpleType >
Content: (annotation?) </maxExclusive>
m a x In c lu s iv e
<minLength id = ID
fixed = boolean : false
value = nonNegativeInteger >
Content: (annotation?) </minLength>
Simple Data Type
e nu m era tio n
<maxInclusive id = ID
fixed = boolean : false
value = anySimpleType >
Content: (annotation?) </maxInclusive>
p a tte rn
<length id = ID
fixed = boolean : false
value = nonNegativeInteger >
Content: (annotation?) </length>
m ax L e n g th
§4.3 pt2
len g th
m in L e n gth
10 Constraining Facets
&#x4E; or &#99; for hex or decimal XML character references
Repetition Operators
*
?
+
0 or more,
0 or 1,
1 or more
Interval Operators
ver 1/03
{x,y} range x to y, {x,} at least x, {x} exactly x, i.e. {4,8} 4 to 8
Character Range Expressions
[a-zA-Z] = character a to z upper and lower case
[0-9] = digits 0 to 9
©2002, 2003 D Vint Productions
xmlhelp@ dvint.com
http://w w w .xm l.dvint.com