Tue Mar 14 20:51:06 2006
Quick Reference Card for XML (and related) technologies
Introduction
NEWS for German Users:
Source code for the AxKit tutorial at the 7th German Perl-Workshop
will shortly be available here.
This quick reference lists all important XML technologies along with the associated namespace URIs and either a short summary of the syntax, or a link to a more comprehensive reference. For most of the summaries, it is expected that you have read the relevant standards or documentation and still roughly recall how it works. If you don't, there is also a link to the relevant standard or a good tutorial to get you started. Be aware, though, that the Author of this page is a hardcore W3C standards reader, don't expect easy lecture :-)
This page also contains non-XML, but related technologies (HTTP, REST, URI).
Table of Contents
Meta
"Introduction"
"Table of Contents"
"Call for Participation"
"Syntactical Conventions"
"ChangeLog"
Core Technologies
XML
:
Overview (with reference)
,
Standard
,
Namespace
,
Reference
XML Base
:
Overview (with reference)
,
Standard
,
Namespace
XInclude
:
Overview (with reference)
,
Standard
,
Namespace
DOM
:
Overview
,
Standard
,
Reference
Common Applications of XML
XHTML
:
Overview
,
Standard
,
Namespace
,
Reference
XSLT
:
Overview
,
Standard
,
Namespace
,
Reference
EXSLT
:
Overview (with reference)
,
Standard
,
Namespace
SVG
:
Overview
,
Standard
,
Namespace
,
Reference
MathML
:
Overview
,
Standard
,
Namespace
,
Reference
XForms
:
Overview
,
Standard
,
Namespace
,
Reference
RDF/RSS
:
Overview (with reference)
,
Standard
,
Namespace
,
Reference
Links and Queries
XLink
:
Overview (with reference)
,
Standard
,
Namespace
,
Reference
XPointer
:
Overview (with reference)
,
Standard
,
Reference
XUpdate
:
Overview (with reference)
,
Standard
,
Namespace
XQuery
:
Overview
,
Standard
,
Namespace
Schemas and Validation
Relax NG
:
Overview
,
Standard
,
Namespace
,
Reference
Schematron
:
Overview
,
Standard
,
Namespace
,
Reference
XML Schema
:
Overview
,
Standard
,
Namespace
,
Reference
Networking
REST
:
Overview
,
Standard
,
Reference
XML-RPC
:
Overview
,
Standard
SOAP
:
Overview
,
Reference
Related Technologies
HTTP
:
Overview
,
Standard
URI/URL/URN
:
Overview
,
Standard
Apache
:
Overview
,
Reference
JavaScript
:
Overview
,
Standard
,
Reference
Call for Participation
Please, help out by adding any tutorials or references you find (though it will be hard to find better references that zvon.org's). If a particular standard is small, consider writing a quick reference. You should look at
"XUpdate"
for a medium-sized example of what the original author considers "enough information".
If you plan to add more standards, please think about the practical usability: This page is aimed at AxKit developers who do not neccessarily follow the latest hyped standard. In particular, many distrust XML Schema and like the KISS (Keep it simple, stupid) principle. Having REST and Schematron listed here is a tribute to that attitude, while SOAP and XML Schema are listed more for the sake of completeness.
At the end is a
"ChangeLog"
. Please note any significant changes (not corrected typos or fixing broken links) there.
Syntactical Conventions
Each entry lists several URIs. These have the following meaning:
Standard: The authoritative standards document
Tutorial: A tutorial for the unintiated, usually not going too much in depth
Namespace URI: The namespace URI, if applicable
Reference: A link to an online reference, for the larger standards
After this section, the actual reference follows. It usually lists the possible elements/functions/attributes/whatever in some pseudo-document-fragments. Optional stuff is set in
italics
, stuff you must fill in is written like
{$this}
. If there are multiple exclusive choices, they are written like
{'this'|'that'}
, while multiple cumulative choices are written like
{'this'/'that'}
. Attributes that have been mentioned before are not repeated but just listed, separated with commas.
XML
Standard:
XML 1.0 W3C Recommendation (Second Edition), 2002-10-06
Tutorial:
XML Tutorial at w3schools.com
,
DTD Tutorial at w3schools.com
Namespace:
http://www.w3.org/XML/1998/namespace
Reference:
Mulberry Technologies' XML Quick Reference (PDF)
Attributes
xml:space="
{'default'|'preserve'}
"
xml:lang="
{$iso-2-letter-language-code}
"
XML Base
Standard:
XML Base W3C Recommendation, 2001-06-27
Tutorial:
none available
Namespace:
http://www.w3.org/XML/1998/namespace
Reference:
none available
Attributes
xml:base="
{$url}
"
XInclude
Standard:
XInclude 1.0 W3C Candidate Recommendation, 2002-10-17
Tutorial:
none available
Namespace:
http://www.w3.org/2001/XInclude
Reference:
none available
Elements
<xi:include href="
{$url-with-optional-fragment-in-xpointer-syntax}
"
parse="
{'xml'|'text'}
"
encoding="
{$encoding-name}
"
>
<xi:fallback>
{$content-for-when-url-cant-be-retrieved}
</xi:fallback>
</xi:include>
XHTML
Standard:
XHTML 1.0 W3C Recommendation (Second Edition), 2002-08-01
,
HTML 4.01 W3C Recommendation 1999-12-24
,
CSS 2.1 W3C Working Draft 2003-01-28
Tutorial:
XHTML Tutorial at w3schools.com
Namespace:
http://www.w3.org/1999/xhtml
Reference:
XHTML Reference at zvon.org
,
CSS2 Reference at zvon.org
XSLT
Standard:
XSLT 1.0 W3C Recommendation, 1999-11-16
,
XPath 1.0 W3C Recommendation 1999-11-16
Tutorial:
XSLT Tutorial at w3schools.com
,
the definite XSL FAQ/Code Collection/Intro
Namespace:
http://www.w3.org/1999/XSL/Transform
Reference:
XSLT Reference at zvon.org
,
Mulberry Technologies' XSLT and XPath Quick Reference (PDF)
EXSLT
Standard:
EXSLT Website
Tutorial:
none available
Namespace:
various, see below
Reference:
EXSLT Website
Note: Functions and elements in bold face are declared stable and available on all EXSLT processors supporting the associated group. Functions not supported by libxslt are noted as such, as are functions available through extension stylesheets.
Common -
http://exslt.org/common
Functions:
$nodeset
= exsl:node-set(
$anything
)
$string
= exsl:object-type(
$anything
)
Elements:
<exsl:document href="
{$uri}
"
method="
{'xml'|'html'|'text'|$others}
" version="
{$version}
" encoding="
{$encoding}
" omit-xml-declaration="
{'yes'|'no'}
" standalone="
{'yes'|'no'}
" doctype-public="
{$publicid}
" doctype-system="
{$systemid}
" cdata-section-elements="
{$list}
" indent="
{'yes'|'no'}
" media-type="
{$type}
"
>
{$content-of-document}
</exsl:document>
Dates And Times -
http://exslt.org/dates-and-times
Notes:
$datetime
is an ISO 8601 Date/Time string, or one of the XML Schema xs:dateTime strings. These forms are possible:
CCYY
-
MM
-
DD
T
hh
:
mm
:
ss
,
CCYY
-
MM
-
DD
,
CCYY
-
MM
,
CCYY
,
hh
:
mm
:
ss
.
$duration
is an xs:duration string, which is basically
P
n
Y
n
M
n
DT
n
H
n
M
n
S
, for example:
P1M
,
-P1D
,
PT30S
,
P1Y0M1DT0M0H0S
.
$template
is like in Java 1.1:
y
=year,
M
=month,
d
=day of month,
H
=hour(0-23),
m
=minute,
s
=second,
S
=millisecond,
z
=timezone,
E
=weekday,
a
=am/pm,
h
=hour(1-12),
G
=AD/BC; more letters == longer format:
MM
=08,
MMM
=Aug,
MMMM
=August.
Functions:
$datetime
= date:date-time()
$date
= date:date(
$datetime
)
$time
= date:time(
$datetime
)
$year
= date:year(
$datetime
)
$boolean
= date:leap-year(
$datetime
)
$number
= date:month-in-year(
$datetime
)
$name
= date:month-name(
$datetime
)
$name
= date:month-abbreviation(
$datetime
)
$number
= date:week-in-year(
$datetime
)
$number
= date:week-in-month(
$datetime
)
$number
= date:day-in-year(
$datetime
)
$number
= date:day-in-month(
$datetime
)
$number
= date:day-of-week-in-month(
$datetime
)
$number
= date:day-in-week(
$datetime
)
$name
= date:day-name(
$datetime
)
$name
= date:day-abbreviation(
$datetime
)
$number
= date:hour-in-day(
$datetime
)
$number
= date:minute-in-hour(
$datetime
)
$number
= date:second-in-minute(
$datetime
)
$number
= date:seconds(
$datetime-or-duration
)
$datetime
= date:add(
$datetime
,
$duration
)
$duration
= date:add-duration(
$duration
,
$duration
)
$duration
= date:duration(
$seconds
)
$string
= date:format-date(
$datetime
,
$template
)
not in libxslt, available as extension stylesheet
$datetime
= date:parse-date(
$datetime
,
$template
)
not in libxslt
$duration
= date:sum(
$nodeset-of-durations
)
not in libxslt
Elements:
<date:date-format
name="
{$name}
"
calendar="
{'gregorian'|$calendarname}
"
lang="
{$iso-2letter-language}
"
first-day-of-week="
{'monday'|'tuesday'|...|'sunday'}
"
/>
not in libxslt
Dynamic -
http://exslt.org/dynamic
Functions:
$anything
= dyn:evaluate(
$xpath-expression
)
$number
= dyn:min(
$nodeset
,
$xpath-expression
)
not in libxslt
$number
= dyn:max(
$nodeset
,
$xpath-expression
)
not in libxslt
$number
= dyn:map(
$nodeset
,
$xpath-expression
)
not in libxslt
$nodeset
= dyn:map(
$nodeset
,
$xpath-expression
)
not in libxslt
$transitive-closure-nodeset
= dyn:closure(
$nodeset
,
$xpath-expression
)
not in libxslt
Functions -
http://exslt.org/functions
Elements:
<func:function name="
{$qname}
"
{$param-declarations}
{$content-with-result}
</func:function>>
<func:result
select="
{$xpath-expression}
"
>
{$content}
</func:function>
<func:script implements-prefix="
{$bound-prefix}
" language="
{$lang-name}
" src="
{$uri}
"
archive="
{$uri}
"
/>
not in libxslt
Math -
http://exslt.org/math
Functions:
$number
= math:min(
$nodeset
)
$number
= math:max(
$nodeset
)
$nodeset
= math:highest(
$nodeset
)
$nodeset
= math:lowest(
$nodeset
)
$number
= math:constant(
{'PI'|'E'|'SQRRT2'|'LN2'|'LN10'|'LOG2E'|'SQRT1_2'}
,
$precision
)
$number
= math:random()
$number
= math:abs(
$number
)
$number
= math:sqrt(
$number
)
$number
= math:power(
$number
)
$number
= math:log(
$number
)
$number
= math:exp(
$number
)
$number
= math:sin(
$number
)
$number
= math:cos(
$number
)
$number
= math:tan(
$number
)
$number
= math:asin(
$number
)
$number
= math:acos(
$number
)
$number
= math:atan(
$number
)
$number
= math:atan2(
$number
)
Regular Expressions -
http://exslt.org/regular-expressions
Functions:
$boolean
= regexp:test(
$string
,
$pcre
,
{'g'/'i'}
)
not in libxslt
$nodeset
= regexp:match(
$string
,
$pcre
,
{'g'/'i'}
)
not in libxslt
$result
= regexp:replace(
$string
,
$pcre
,
{'g'/'i'}
,
$replacement
)
not in libxslt
Sets - http://exslt.org/sets
Functions:
$nodeset
= set:difference(
$base-nodeset
,
$subtraced-nodeset
)
$nodeset
= set:intersection(
$nodeset
,
$nodeset
)
$nodeset
= set:distinct(
$nodeset
)
$boolean
= set:has-same-node(
$nodeset
,
$nodeset
)
$prefix-nodeset
= set:leading(
$nodeset
,
$contained-node
)
$postfix-nodeset
= set:trailing(
$nodeset
,
$contained-node
)
Strings - http://exslt.org/strings
Functions:
$nodeset
= str:tokenize(
$string
,
$separator-chars
)
$result
= str:replace(
$string
,
$list-of-matches
,
$list-of-replacements
)
not in libxslt, available as extension stylesheet
$string
= str:padding(
$char-length
,
$string-to-repeat
)
|

Home