summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/stex/schema/rng/omdocdc.rng
blob: cd1cc409c601780061a7b4418601168f6d7fc535 (plain)
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
111
112
113
114
115
116
117
118
119
120
121
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <!--
    A RelaxNG schema for Open Mathematical documents (OMDoc 1.3) Module DC  
    $Id: omdocdc.rnc 8968 2011-09-07 05:37:09Z kohlhase $
    $HeadURL: https://svn.omdoc.org/repos/omdoc/branches/omdoc-1.3/schema/rnc/omdocdc.rnc $
    See the documentation and examples at http://www.omdoc.org
    Copyright (c) 2004-2010 Michael Kohlhase, released under the GNU Public License (GPL) 
  -->
  <!-- we include the dublin core and MARC elements, filling them with our content types -->
  <define name="dc.common">
    <interleave>
      <ref name="id.attribs"/>
      <ref name="nonlocal.attribs"/>
    </interleave>
  </define>
  <define name="dc.comlang">
    <interleave>
      <ref name="dc.common"/>
      <ref name="xml.lang.attrib"/>
    </interleave>
  </define>
  <define name="dublincore">
    <grammar>
      <include href="MARCRelators.rng"/>
      <include href="dublincore.rng">
        <define name="dc.date">
          <interleave>
            <parentRef name="dc.common"/>
            <optional>
              <attribute name="action">
                <data type="NMTOKEN"/>
              </attribute>
            </optional>
            <optional>
              <attribute name="who">
                <data type="anyURI"/>
              </attribute>
            </optional>
            <choice>
              <data type="date"/>
              <data type="dateTime"/>
            </choice>
          </interleave>
        </define>
        <define name="dc.identifier">
          <choice>
            <parentRef name="tref"/>
            <interleave>
              <parentRef name="dc.common"/>
              <attribute name="scheme">
                <data type="NMTOKEN"/>
              </attribute>
              <text/>
            </interleave>
          </choice>
        </define>
        <define name="dc.type">
          <choice>
            <parentRef name="tref"/>
            <interleave>
              <parentRef name="dc.common"/>
              <choice>
                <value>Dataset</value>
                <value>Text</value>
                <value>Collection</value>
              </choice>
            </interleave>
          </choice>
        </define>
        <define name="dc.inline">
          <choice>
            <parentRef name="tref"/>
            <interleave>
              <parentRef name="dc.comlang"/>
              <parentRef name="inline.model"/>
            </interleave>
          </choice>
        </define>
        <define name="dc.text">
          <choice>
            <parentRef name="tref"/>
            <interleave>
              <parentRef name="dc.comlang"/>
              <parentRef name="plike.class"/>
            </interleave>
          </choice>
        </define>
        <define name="dc.person">
          <choice>
            <parentRef name="tref"/>
            <interleave>
              <parentRef name="dc.common"/>
              <optional>
                <attribute name="role">
                  <ref name="MARCRelators"/>
                </attribute>
              </optional>
              <parentRef name="inline.model"/>
            </interleave>
          </choice>
        </define>
        <define name="dc.rights">
          <choice>
            <parentRef name="tref"/>
            <interleave>
              <parentRef name="dc.comlang"/>
              <parentRef name="plike.class"/>
            </interleave>
          </choice>
        </define>
        <define name="dc.source">
          <parentRef name="plike.class"/>
        </define>
      </include>
    </grammar>
  </define>
  <define name="metadata.model" combine="interleave">
    <ref name="dublincore"/>
  </define>
</grammar>