xml.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 22 Feb 2016 13:34:55 +0200
changeset 1911 870693ce6ff0
parent 1905 fba288d59662
child 1912 8b81a8f0f692
permissions -rw-r--r--
Fix my RST article style by 'check-format-policy' target.
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