xml.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 22 Feb 2016 12:46:36 +0200
changeset 1905 fba288d59662
parent 1489 1668fc8198e1
child 1912 8b81a8f0f692
permissions -rw-r--r--
Include only local subsections into TOC. This prevent duplication of TOC when build single page HTML document. Also this make unnecessary CSS hack to hide document title as top level section.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1334
9bf0d5a1f0cf Include common header with quick links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1277
diff changeset
     1
.. -*- coding: utf-8; -*-
9bf0d5a1f0cf Include common header with quick links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1277
diff changeset
     2
.. include:: HEADER.rst
1277
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
======
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
 XML.
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
======
1334
9bf0d5a1f0cf Include common header with quick links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1277
diff changeset
     7
.. contents::
1905
fba288d59662 Include only local subsections into TOC. This prevent duplication of
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1489
diff changeset
     8
   :local:
1277
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
About XML.
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
==========
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
 * http://xmlhack.ru
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
 * http://microformats.org/wiki/namespaces-considered-harmful
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
1409
33a935b7eabc Converting between schema formants.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1334
diff changeset
    16
Converting between schema formants.
33a935b7eabc Converting between schema formants.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1334
diff changeset
    17
===================================
33a935b7eabc Converting between schema formants.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1334
diff changeset
    18
::
33a935b7eabc Converting between schema formants.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1334
diff changeset
    19
33a935b7eabc Converting between schema formants.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1334
diff changeset
    20
  $ man trang
33a935b7eabc Converting between schema formants.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1334
diff changeset
    21
  trang [-I rng|rnc|dtd|xml] [-O rng|rnc|dtd|xsd] $input $output
33a935b7eabc Converting between schema formants.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1334
diff changeset
    22
1444
0573e369b571 xsdtorngconverter
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1409
diff changeset
    23
See:
0573e369b571 xsdtorngconverter
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1409
diff changeset
    24
0573e369b571 xsdtorngconverter
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1409
diff changeset
    25
  http://code.google.com/p/xsdtorngconverter/
0573e369b571 xsdtorngconverter
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1409
diff changeset
    26
                That XSLT transformation converts a XSD schema to RelaxNG.
0573e369b571 xsdtorngconverter
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1409
diff changeset
    27
1277
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    28
relaxng-mode.
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    29
=============
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    30
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    31
  http://www.pantor.com/download.html
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    32
                RNC Emacs Mode (home page)
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    33
  http://www.emacswiki.org/emacs/RELAX_NG
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
                Emacs wili.
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    35
  http://www.relaxng.org/compact-tutorial-20030326.html
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    36
                relaxng compact syntax tutorial
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    37
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
utilities for processing xml.
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    39
=============================
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    40
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    41
xmlstar.
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    42
--------
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    43
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
XMLStarlet is a set of command line utilities (tools) which can be used to transform,
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    45
query, validate, and edit XML documents and files using simple set of shell commands in
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    46
similar way it is done for plain text files using UNIX grep, sed, awk, diff, patch, join,
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    47
etc.
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    48
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    49
  http://xmlstar.sourceforge.net/overview.php
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    50
                home page
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    51
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    52
Cygwin.
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    53
-------
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    54
::
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    55
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    56
  cmd# setup.exe -p libxml2,libxslt
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    57
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    58
``libxslt`` provide ``xsltproc``, ``libxml2`` provide ``xmlcatalog`` and
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    59
``xmllint``.
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    60
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    61
XPath query from CLI.
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    62
---------------------
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    63
::
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    64
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    65
  $ xmllint --xpath $XPATH file.xml
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    66
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    67
Microformats.
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    68
=============
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    69
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    70
  http://microformats.org/about
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    71
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    72
XML encoding.
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    73
=============
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    74
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    75
  http://www.ietf.org/rfc/rfc3023.txt
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    76
                XML Media Types
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    77
  http://www.xml.com/pub/a/2004/07/21/dive.html
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    78
                XML on the Web Has Failed
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    79
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    80
Validation of xml files.
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    81
========================
1489
1668fc8198e1 Validation of xml files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1444
diff changeset
    82
::
1668fc8198e1 Validation of xml files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1444
diff changeset
    83
1668fc8198e1 Validation of xml files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1444
diff changeset
    84
  $ jing schema.rng in.xml
1668fc8198e1 Validation of xml files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1444
diff changeset
    85
  $ xmllint --relaxng schema.rng in.xml
1668fc8198e1 Validation of xml files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1444
diff changeset
    86
1668fc8198e1 Validation of xml files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1444
diff changeset
    87
See:
1277
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    88
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    89
  http://infohost.nmt.edu/tcc/help/xml/lint.html
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    90
                xmllint: A validator for XML files
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    91
  http://www.cogsci.ed.ac.uk/~richard/rxp.html
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    92
                RXP - an XML parser available under the GPL
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    93
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    94
Validating using the DOCTYPE.
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    95
-----------------------------
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    96
::
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    97
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    98
  $ xmllint --valid --noout file.xml
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    99
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   100
Validating against a specific DTD.
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   101
----------------------------------
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   102
::
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   103
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   104
  $ xmllint --noout --dtdvalid URL file.xml
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   105
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   106
Validating against a Relax NG schema.
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   107
-------------------------------------
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   108
::
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   109
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   110
  $ xmllint --noout --relaxng schema.rng file.xml
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   111
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   112
If your schema is in Compact Format, you can use the trang program to convert
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   113
it to RNG format::
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   114
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   115
  $ trang file.rnc file.rng
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   116
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   117
Validating against XSchema.
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   118
---------------------------
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   119
::
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   120
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   121
  $ xmllint --noout --schema schema.xsd file.xml
c3af4a7b5ec3 RXP - an XML parser available under the GPL
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   122