File: example.rng

package info (click to toggle)
libxml%2B%2B2.6 2.42.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,384 kB
  • sloc: cpp: 7,958; xml: 443; makefile: 231; python: 178; perl: 53; sh: 5
file content (110 lines) | stat: -rw-r--r-- 3,196 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<?xml version="1.0" encoding="UTF-8"?>
<!-- Example from XMLSchema recommendation 0 - primer at http://www.w3.org/TR/xmlschema-0/ -->
<!-- Converted from an XSD schema to a RelaxNG schema at http://debeissat.nicolas.free.fr/XSDtoRNG.php -->
<rng:grammar xmlns:rng="http://relaxng.org/ns/structure/1.0" ns=""
  datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">

  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">
     Purchase order schema for Example.com.
     Copyright 2000 Example.com. All rights reserved.
  </a:documentation>

  <rng:start combine="choice">
    <rng:ref name="purchaseOrder"/>
  </rng:start>

  <rng:define name="purchaseOrder">
    <rng:element name="purchaseOrder">
      <rng:ref name="PurchaseOrderType"/>
    </rng:element>
  </rng:define>

  <rng:start combine="choice">
    <rng:ref name="comment"/>
  </rng:start>
  <rng:define name="comment">
    <rng:element name="comment">
      <rng:data type="string"/>
    </rng:element>
  </rng:define>

  <rng:define name="PurchaseOrderType">
    <rng:element name="shipTo">
      <rng:ref name="USAddress"/>
    </rng:element>
    <rng:element name="billTo">
      <rng:ref name="USAddress"/>
    </rng:element>
    <rng:optional>
      <rng:ref name="comment"/>
    </rng:optional>
    <rng:element name="items">
      <rng:ref name="Items"/>
    </rng:element>
    <rng:optional>
      <rng:attribute name="orderDate">
        <rng:data type="date"/>
      </rng:attribute>
    </rng:optional>
  </rng:define>

  <rng:define name="USAddress">
    <rng:element name="name">
      <rng:data type="string"/>
    </rng:element>
    <rng:element name="street">
      <rng:data type="string"/>
    </rng:element>
    <rng:element name="city">
      <rng:data type="string"/>
    </rng:element>
    <rng:element name="state">
      <rng:data type="string"/>
    </rng:element>
    <rng:element name="zip">
      <rng:data type="decimal"/>
    </rng:element>
    <rng:optional>
      <rng:attribute name="country">
        <rng:data type="NMTOKEN"/>
      </rng:attribute>
    </rng:optional>
  </rng:define>

  <rng:define name="Items">
    <rng:zeroOrMore>
      <rng:element name="item">
        <rng:element name="productName">
          <rng:data type="string"/>
        </rng:element>
        <rng:element name="quantity">
          <rng:data type="positiveInteger">
            <rng:param name="maxExclusive">100</rng:param>
          </rng:data>
        </rng:element>
        <rng:element name="USPrice">
          <rng:data type="decimal"/>
        </rng:element>
        <rng:optional>
          <rng:ref name="comment"/>
        </rng:optional>
        <rng:optional>
          <rng:element name="shipDate">
            <rng:data type="date"/>
          </rng:element>
        </rng:optional>
        <rng:attribute name="partNum">
          <rng:ref name="SKU"/>
        </rng:attribute>
      </rng:element>
    </rng:zeroOrMore>
  </rng:define>

  <!-- Stock Keeping Unit, a code for identifying products -->
  <rng:define name="SKU">
    <rng:data type="string">
      <rng:param name="pattern">\d{3}-[A-Z]{2}</rng:param>
    </rng:data>
  </rng:define>

</rng:grammar>