Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Admin files for build, release, etc.

  • Loading branch information...
commit 887a4acae20b1c64d14a3bac3f59688dbc09054c 1 parent 2437132
Randy J. Ray authored August 17, 2009
80  Build.PL
... ...
@@ -0,0 +1,80 @@
  1
+###############################################################################
  2
+#
  3
+#   Module::Build file for Text::Textile::Plaintext
  4
+#
  5
+###############################################################################
  6
+
  7
+use 5.006001;
  8
+use strict;
  9
+use warnings;
  10
+
  11
+use Module::Build;
  12
+
  13
+my $class = Module::Build->subclass(
  14
+    class => 'Text::Textile::Plaintext::Builder',
  15
+    code  => q|
  16
+        sub ACTION_dist
  17
+        {
  18
+            my $self = shift;
  19
+
  20
+            use File::Spec;
  21
+            my $textile2x = File::Spec->catfile(qw(bin textile2x));
  22
+
  23
+            # Create the text ChangeLog
  24
+            $self->do_system('changelog2x',
  25
+                             qw(--template text --input ChangeLog.xml),
  26
+                             qw(--output ChangeLog));
  27
+            # Create the text README
  28
+            $self->do_system(qw(perl -Mblib),
  29
+                             $textile2x,
  30
+                             qw(--format plaintext
  31
+                                --input README.textile
  32
+                                --output README));
  33
+
  34
+            $self->SUPER::ACTION_manifest();
  35
+            $self->SUPER::ACTION_dist();
  36
+        }
  37
+    |
  38
+);
  39
+
  40
+my $builder = $class->new(
  41
+    module_name    => 'Text::Textile::Plaintext',
  42
+    license        => 'perl',
  43
+    dist_author    => 'Randy J. Ray <rjray@blackperl.com>',
  44
+    dist_abstract  => 'Convert Textile markup to plain-text, PS or RTF output',
  45
+    dist_version   => '0.100',
  46
+    build_requires => {
  47
+        'Test::More'    => '0.80',
  48
+    },
  49
+    requires => {
  50
+        'perl'              => '5.008',
  51
+        'Text::Textile'     => '2.12',
  52
+        'HTML::TreeBuilder' => '3.23',
  53
+        'HTML::FormatText'  => '2.04'
  54
+    },
  55
+    add_to_cleanup => [
  56
+        qw(Text-Textile-Plaintext-*
  57
+          ChangeLog
  58
+          MANIFEST
  59
+          MANIFEST.bak
  60
+          META.yml
  61
+          Makefile.PL
  62
+          README)
  63
+    ],
  64
+    meta_merge => {
  65
+        resources => {
  66
+            homepage => 'http://search.cpan.org/dist/Text-Textile-Plaintext',
  67
+            bugtracker =>
  68
+              'http://rt.cpan.org/Public/Dist/Display.html?Name=Text-Textile-Plaintext',
  69
+            repository =>
  70
+              'http://github.com/rjray/text-textile-plaintext/tree/master',
  71
+        }
  72
+    },
  73
+
  74
+    create_makefile_pl => 'traditional',
  75
+    sign               => 'here, please',
  76
+);
  77
+
  78
+$builder->create_build_script();
  79
+
  80
+exit 0;
35  ChangeLog.xml
... ...
@@ -0,0 +1,35 @@
  1
+<?xml version="1.0" encoding="utf-8"?>
  2
+<!-- :tabSize=2:indentSize=2:wrap=hard: -->
  3
+<changelog xmlns="http://www.blackperl.com/2009/01/ChangeLogML"
  4
+    xmlns:sc="http://www.blackperl.com/2009/01/ChangeLogML/source-control"
  5
+    xmlns:git="http://www.blackperl.com/2009/01/ChangeLogML/source-control/git"
  6
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  7
+    xmlns:xhtml="http://www.w3.org/1999/xhtml"
  8
+    xsi:schemaLocation="http://www.blackperl.com/2009/01/ChangeLogML etc/ChangeLogML.xsd">
  9
+  <project>Text::Textile::Plaintext</project>
  10
+  <title>Perl Module Text::Textile::Plaintext Change History</title>
  11
+  <description>
  12
+    A Perl module to convert Textile markup to plain-text output, using
  13
+    the Text::Textile, HTML::TreeBuilder and HTML::FormatText modules.
  14
+  </description>
  15
+  <release version="0.100" sc:tag="0.100" date="2009-08-17T10:10:00-07:00">
  16
+    <change git:commit="2437132793fcec71689450b3b53089de8b1b32d5">
  17
+      <fileset>
  18
+        <file path="bin/textile2x" action="ADD" />
  19
+        <file path="lib/App/Textile2x.pm" action="ADD" />
  20
+        <file path="lib/Text/Textile/Plaintext.pm" action="ADD" />
  21
+        <file path="lib/Text/Textile/PostScript.pm" action="ADD" />
  22
+        <file path="lib/Text/Textile/RTF.pm" action="ADD" />
  23
+        <file path="t/00_load.t" action="ADD" />
  24
+        <file path="t/01_pod.t" action="ADD" />
  25
+        <file path="t/02_pod_coverage.t" action="ADD" />
  26
+        <file path="t/03_meta.t" action="ADD" />
  27
+        <file path="t/04_minimumversion.t" action="ADD" />
  28
+        <file path="t/05_critic.t" action="ADD" />
  29
+      </fileset>
  30
+      <description>
  31
+        Initial commit of Text::Textile::Plaintext core files.
  32
+      </description>
  33
+    </change>
  34
+  </release>
  35
+</changelog>
9  MANIFEST.SKIP
... ...
@@ -0,0 +1,9 @@
  1
+#defaults
  2
+^Makefile$
  3
+^blib/
  4
+^pm_to_blib
  5
+^blibdirs
  6
+SIGNATURE
  7
+_build
  8
+^Build$
  9
+.git
43  README.textile
Source Rendered
... ...
@@ -0,0 +1,43 @@
  1
+h1. Text::Textile::Plaintext - Convert Textile markup to other formats
  2
+
  3
+Version: 0.100 (See CHANGES below)
  4
+
  5
+h2. WHAT IS IT
  6
+
  7
+This distribution provides modules that convert Textile markup into plain
  8
+text, PostScript, or RTF. It also includes a simple command-line tool for
  9
+performing the conversions.
  10
+
  11
+h2. BUILDING/INSTALLING
  12
+
  13
+This package uses Makefile.PL:
  14
+
  15
+<pre>
  16
+<code>
  17
+        perl Makefile.PL
  18
+        make && make test
  19
+        make install
  20
+</code>
  21
+</pre>
  22
+
  23
+You may need super-user access to install.
  24
+
  25
+h2. PROBLEMS/BUG REPORTS
  26
+
  27
+Please send any reports of problems or bugs to rjray@blackperl.com.
  28
+
  29
+h2. CHANGES
  30
+
  31
+* bin/textile2x (added)
  32
+* lib/App/Textile2x.pm (added)
  33
+* lib/Text/Textile/Plaintext.pm (added)
  34
+* lib/Text/Textile/PostScript.pm (added)
  35
+* lib/Text/Textile/RTF.pm (added)
  36
+* t/00_load.t (added)
  37
+* t/01_pod.t (added)
  38
+* t/02_pod_coverage.t (added)
  39
+* t/03_meta.t (added)
  40
+* t/04_minimumversion.t (added)
  41
+* t/05_critic.t (added)
  42
+
  43
+p{margin-bottom:2em}. Initial commit of Text::Textile::Plaintext core files.          
778  etc/ChangeLogML.xsd
... ...
@@ -0,0 +1,778 @@
  1
+<?xml version="1.0"?>
  2
+<!--
  3
+    :tabSize=2:indentSize=2:wrap=hard:
  4
+    $Id: ChangeLogML.xsd 9 2009-01-21 00:02:06Z rjray $
  5
+-->
  6
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  7
+    xmlns:tns="http://www.blackperl.com/2009/01/ChangeLogML"
  8
+    targetNamespace="http://www.blackperl.com/2009/01/ChangeLogML"
  9
+    elementFormDefault="qualified" attributeFormDefault="unqualified"
  10
+    id="changelogml">
  11
+  <!--
  12
+      Refer to this schema using the following namespace:
  13
+      http://www.blackperl.com/2009/01/ChangeLogML
  14
+  -->
  15
+  <xsd:annotation>
  16
+    <xsd:documentation>
  17
+      A description of an XML application which itemizes changes over the
  18
+      life-span of a software project. Changes are tracked by releases, with a
  19
+      granularity of individual items made up of files that were affected.
  20
+    </xsd:documentation>
  21
+    <xsd:appinfo xmlns:dc="http://purl.org/dc/elements/1.1/">
  22
+      <dc:creator>Randy J. Ray &lt;rjray@blackperl.com&gt;</dc:creator>
  23
+      <dc:date>2009-01-01</dc:date>
  24
+      <dc:subject>changelog,xml,schema</dc:subject>
  25
+      <dc:description>
  26
+        An XML Schema describing an XML vocabulary for software project
  27
+        change-logs.
  28
+      </dc:description>
  29
+    </xsd:appinfo>
  30
+    <xsd:appinfo>
  31
+      <rdf:RDF xmlns:cc="http://web.resource.org/cc/"
  32
+               xmlns:dc="http://purl.org/dc/elements/1.1/"
  33
+               xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  34
+        <cc:Work rdf:about="">
  35
+          <dc:title>XML Schema for Changelogs</dc:title>
  36
+          <dc:description>
  37
+            An XML Schema describing an XML vocabulary for software project
  38
+            change-logs.
  39
+          </dc:description>
  40
+          <dc:creator>
  41
+            <cc:Agent>
  42
+              <dc:title>Randy J. Ray</dc:title>
  43
+            </cc:Agent>
  44
+          </dc:creator>
  45
+          <dc:rights>
  46
+            <cc:Agent>
  47
+              <dc:title>Randy J. Ray</dc:title>
  48
+            </cc:Agent>
  49
+          </dc:rights>
  50
+          <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
  51
+          <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
  52
+        </cc:Work>
  53
+        <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
  54
+          <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction" />
  55
+          <cc:permits rdf:resource="http://web.resource.org/cc/Distribution" />
  56
+          <cc:requires rdf:resource="http://web.resource.org/cc/Notice" />
  57
+          <cc:requires rdf:resource="http://web.resource.org/cc/Attribution" />
  58
+          <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
  59
+          <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike" />
  60
+        </cc:License>
  61
+      </rdf:RDF>
  62
+    </xsd:appinfo>
  63
+  </xsd:annotation>
  64
+
  65
+  <xsd:simpleType id="versionString" name="versionString">
  66
+    <xsd:annotation>
  67
+      <xsd:documentation>
  68
+        The versionString type is applied to attributes that describe simple
  69
+        revision-number strings. It only supports dotted-decimal styled
  70
+        version numbers.
  71
+      </xsd:documentation>
  72
+    </xsd:annotation>
  73
+    <xsd:restriction base="xsd:string">
  74
+      <xsd:pattern value="\d+(\.\d+)*" />
  75
+    </xsd:restriction>
  76
+  </xsd:simpleType>
  77
+
  78
+  <xsd:complexType id="informationType" name="informationType" mixed="true">
  79
+    <xsd:annotation>
  80
+      <xsd:documentation>
  81
+        An informationType is an open-ended container type that allows
  82
+        mixed-content which can include elements from other XML namespaces.
  83
+        This allows users to include Dublin Core metadata, XHTML tags, etc. as
  84
+        desired within the &lt;description&gt; and similar blocks. It also
  85
+        allows for open-ended extension of ChangeLogML with things such as
  86
+        source-control specification, etc.
  87
+      </xsd:documentation>
  88
+    </xsd:annotation>
  89
+    <xsd:sequence maxOccurs="unbounded" minOccurs="0">
  90
+      <xsd:any processContents="lax" />
  91
+    </xsd:sequence>
  92
+    <xsd:attribute name="source" type="xsd:anyURI" use="optional">
  93
+      <xsd:annotation>
  94
+        <xsd:documentation>
  95
+          The source attribute, if present, is used to refer to any external
  96
+          resource that may be related to the contents of the block-element
  97
+          that has the attribute. The role or relevance of the reference is not
  98
+          specified or constrained. The value of the attribute must be a URI,
  99
+          but may be absolute, relative, or a reference to a fragment. The only
  100
+          restriction is that it be a valid URI.
  101
+        </xsd:documentation>
  102
+      </xsd:annotation>
  103
+    </xsd:attribute>
  104
+    <xsd:anyAttribute namespace="##other" processContents="lax" />
  105
+  </xsd:complexType>
  106
+
  107
+  <xsd:complexType id="descriptionType" name="descriptionType">
  108
+    <xsd:annotation>
  109
+      <xsd:documentation>
  110
+        A descriptionType extends informationType to add a specific attribute,
  111
+        called "lang", that specifies the (human) language the text of the
  112
+        block is written in. This allows for a ChangeLog to have multiple
  113
+        versions of the same &lt;description&gt; block in differing languages,
  114
+        leaving it to processors of the document to choose which one to
  115
+        display.
  116
+      </xsd:documentation>
  117
+    </xsd:annotation>
  118
+    <xsd:simpleContent>
  119
+      <xsd:extension base="tns:informationType">
  120
+        <xsd:attribute default="en-US" name="lang" type="xsd:language">
  121
+          <xsd:annotation>
  122
+            <xsd:documentation>
  123
+              This attribute specifies the language in which the content of
  124
+              the &lt;description&gt; block is written. The value of the
  125
+              attribute should be a language code (generally two characters,
  126
+              possibly followed by an underscore and qualifying country-code
  127
+              when the language is used by several countries), and the
  128
+              default value is "en_US" (American English).
  129
+            </xsd:documentation>
  130
+          </xsd:annotation>
  131
+        </xsd:attribute>
  132
+      </xsd:extension>
  133
+    </xsd:simpleContent>
  134
+  </xsd:complexType>
  135
+
  136
+  <xsd:complexType id="fileType" name="fileType">
  137
+    <xsd:annotation>
  138
+      <xsd:documentation>
  139
+        The fileType definition is used for the &lt;file&gt; element, a part
  140
+        of the changeType declaration. It is defined separately so that it can
  141
+        be referred to from multiple places.
  142
+      </xsd:documentation>
  143
+    </xsd:annotation>
  144
+    <xsd:sequence maxOccurs="1" minOccurs="0">
  145
+      <xsd:element name="description"
  146
+                   type="tns:descriptionType"
  147
+                   minOccurs="0" maxOccurs="unbounded">
  148
+        <xsd:annotation>
  149
+          <xsd:documentation>
  150
+            The &lt;description&gt; block is optional, and may occur multiple
  151
+            times in different languages (as with all instances of this tag).
  152
+            It is used to describe the function or role of the file, and would
  153
+            generally only be used the first time a file is introduced.
  154
+          </xsd:documentation>
  155
+        </xsd:annotation>
  156
+      </xsd:element>
  157
+      <xsd:element name="source-control"
  158
+                   type="tns:informationType"
  159
+                   maxOccurs="1" minOccurs="0" nillable="true">
  160
+        <xsd:annotation>
  161
+          <xsd:documentation>
  162
+            This block is optional, and may occur only once. If present, it is
  163
+            used to introduce source-control information specific to the
  164
+            current file. This can be useful if some elements of the project
  165
+            are spread across different source-control systems.
  166
+          </xsd:documentation>
  167
+        </xsd:annotation>
  168
+      </xsd:element>
  169
+    </xsd:sequence>
  170
+    <xsd:attribute name="path" type="xsd:string" use="required">
  171
+      <xsd:annotation>
  172
+        <xsd:documentation>
  173
+          This attribute provides the path-name of the file. In general, this
  174
+          will be a path that is relative to the base directory of the project
  175
+          itself, though there is no rule prohibiting absolute paths, or
  176
+          presuming that paths are relative to some other location.
  177
+        </xsd:documentation>
  178
+      </xsd:annotation>
  179
+    </xsd:attribute>
  180
+    <xsd:attribute name="revision" type="tns:versionString" use="optional">
  181
+      <xsd:annotation>
  182
+        <xsd:documentation>
  183
+          An optional attribute, this indicates the revision, or version, of
  184
+          the file as it is being referred to in the current context. Some
  185
+          source-control systems (such as CVS) version files individually,
  186
+          while others (such as Subversion) version files in groups generally
  187
+          referred to as transactions.
  188
+        </xsd:documentation>
  189
+      </xsd:annotation>
  190
+    </xsd:attribute>
  191
+    <xsd:attribute name="author" type="xsd:NMTOKEN" use="optional">
  192
+      <xsd:annotation>
  193
+        <xsd:documentation>
  194
+          An optional attribute, this allows specification of the author of
  195
+          the current revision of the file being described.
  196
+        </xsd:documentation>
  197
+      </xsd:annotation>
  198
+    </xsd:attribute>
  199
+    <xsd:attribute name="action" default="CHANGE">
  200
+      <xsd:annotation>
  201
+        <xsd:documentation>
  202
+          This attribute describes what the change to this file represents.
  203
+          The value is restricted to one of the strings: ADD, CHANGE, DELETE,
  204
+          MOVE or RESTORE. The default value is CHANGE, which simply means
  205
+          the file was modified. The other labels represent the states at
  206
+          which a file was added to the project, deleted from the project,
  207
+          moved within the file-system, or restored from a deleted state.
  208
+        </xsd:documentation>
  209
+      </xsd:annotation>
  210
+      <xsd:simpleType>
  211
+        <xsd:restriction base="xsd:NMTOKEN">
  212
+          <xsd:enumeration value="ADD" />
  213
+          <xsd:enumeration value="CHANGE" />
  214
+          <xsd:enumeration value="DELETE" />
  215
+          <xsd:enumeration value="MOVE" />
  216
+          <xsd:enumeration value="RESTORE" />
  217
+        </xsd:restriction>
  218
+      </xsd:simpleType>
  219
+    </xsd:attribute>
  220
+    <xsd:anyAttribute namespace="##other" processContents="lax" />
  221
+  </xsd:complexType>
  222
+
  223
+  <xsd:element name="file"
  224
+               type="tns:fileType"
  225
+               nillable="true" id="file">
  226
+    <xsd:annotation>
  227
+      <xsd:documentation>
  228
+        A file element describes one changed file as part of a containing
  229
+        &lt;change&gt; or &lt;fileset&gt; element.
  230
+      </xsd:documentation>
  231
+    </xsd:annotation>
  232
+    <xsd:unique name="fileDescriptionLangConstraint">
  233
+      <xsd:annotation>
  234
+        <xsd:documentation>
  235
+          This uniqueness-constraint ensures that only one &lt;description&gt;
  236
+          tag with a given value for the "lang" attribute occurs within the
  237
+          enclosing &lt;file&gt;. Note that "lang" defaults to "en_US".
  238
+        </xsd:documentation>
  239
+      </xsd:annotation>
  240
+      <xsd:selector xpath="tns:description" />
  241
+      <xsd:field xpath="@lang" />
  242
+    </xsd:unique>
  243
+  </xsd:element>
  244
+
  245
+  <xsd:complexType id="changeType" name="changeType">
  246
+    <xsd:annotation>
  247
+      <xsd:documentation>
  248
+        The changeType declaration is used to define the structure of the
  249
+        &lt;change&gt; blocks. Each such block describes a single change to
  250
+        the project; this change may affect only one file, or it may affect
  251
+        many files. What each change has in common, is that it requires the
  252
+        specification of one or more affected files, as well as a description
  253
+        of the change itself.
  254
+      </xsd:documentation>
  255
+    </xsd:annotation>
  256
+    <xsd:sequence>
  257
+      <xsd:choice minOccurs="1" maxOccurs="1">
  258
+        <xsd:annotation>
  259
+          <xsd:documentation>
  260
+            For specifying the files affected by the change, the document
  261
+            may use one of two options: &lt;file&gt; or &lt;fileset&gt;. If
  262
+            the change affects only one file, a single &lt;file&gt; may be
  263
+            used. Otherwise, multiple files must be contained within an
  264
+            enclosing &lt;fileset&gt;. A &lt;fileset&gt; containing exactly
  265
+            one &lt;file&gt; tag should be considered functionally equivalent
  266
+            to just the stand-alone &lt;file&gt; tag itself.
  267
+          </xsd:documentation>
  268
+        </xsd:annotation>
  269
+        <xsd:element ref="tns:file">
  270
+          <xsd:annotation>
  271
+            <xsd:documentation>
  272
+              When the change affects just one file, this element is used
  273
+              to specify and describe that file.
  274
+            </xsd:documentation>
  275
+          </xsd:annotation>
  276
+        </xsd:element>
  277
+        <xsd:element name="fileset" nillable="false">
  278
+          <xsd:annotation>
  279
+            <xsd:documentation>
  280
+              A &lt;fileset&gt; is a container for one or more &lt;file&gt;
  281
+              tags, though it is more efficient to use a single &lt;file&gt;
  282
+              element if there is only one changed file. All files in the
  283
+              container are considered to be part of the same change, and in
  284
+              terms of source-control are regarded as having been committed
  285
+              to the repository at the same time.
  286
+            </xsd:documentation>
  287
+          </xsd:annotation>
  288
+          <xsd:complexType>
  289
+            <xsd:sequence>
  290
+              <xsd:element name="source-control"
  291
+                           type="tns:informationType"
  292
+                           maxOccurs="1" minOccurs="0" nillable="true">
  293
+                <xsd:annotation>
  294
+                  <xsd:documentation>
  295
+                    This block is optional, and may occur only once. If
  296
+                    present, it is used to introduce source-control
  297
+                    information specific to the fileset/change. As some
  298
+                    source-control systems (such as Subversion) handle groups
  299
+                    of changed files as a single transaction, it may be more
  300
+                    economical to specify source-control information at this
  301
+                    level rather than for each file within the child-element
  302
+                    &lt;fileset&gt; individually.
  303
+                  </xsd:documentation>
  304
+                </xsd:annotation>
  305
+              </xsd:element>
  306
+              <xsd:element maxOccurs="unbounded" minOccurs="1" ref="tns:file">
  307
+                <xsd:annotation>
  308
+                  <xsd:documentation>
  309
+                    One or more &lt;file&gt; elements must be present, with
  310
+                    no limit on the number allowed. The structure of the
  311
+                    block is the same at this level as for a single,
  312
+                    stand-alone instance of &lt;file&gt;.
  313
+                  </xsd:documentation>
  314
+                </xsd:annotation>
  315
+              </xsd:element>
  316
+            </xsd:sequence>
  317
+            <xsd:attribute name="revision"
  318
+                           type="tns:versionString"
  319
+                           use="optional">
  320
+              <xsd:annotation>
  321
+                <xsd:documentation>
  322
+                  A &lt;fileset&gt; may specify a single revision which
  323
+                  applies to all files in the contained &lt;file&gt;
  324
+                  elements.
  325
+                </xsd:documentation>
  326
+              </xsd:annotation>
  327
+            </xsd:attribute>
  328
+            <xsd:anyAttribute namespace="##other" processContents="lax" />
  329
+          </xsd:complexType>
  330
+        </xsd:element>
  331
+      </xsd:choice>
  332
+      <xsd:element name="description"
  333
+                   type="tns:descriptionType"
  334
+                   minOccurs="1" maxOccurs="unbounded">
  335
+        <xsd:annotation>
  336
+          <xsd:documentation>
  337
+            Within the &lt;change&gt; block, a &lt;description&gt; element
  338
+            represents the description of the change, in a manner similar to
  339
+            the comments provided to source-control systems when files are
  340
+            committed.
  341
+          </xsd:documentation>
  342
+        </xsd:annotation>
  343
+      </xsd:element>
  344
+    </xsd:sequence>
  345
+    <xsd:attribute name="author" type="xsd:NMTOKEN" use="optional">
  346
+      <xsd:annotation>
  347
+        <xsd:documentation>
  348
+          An optional attribute, this allows specification of the author of
  349
+          the current change-set being described. This is useful if the whole
  350
+          of a change is credited to one committer, as opposed to specifying the
  351
+          same author for every file in the &lt;fileset&gt; block.
  352
+        </xsd:documentation>
  353
+      </xsd:annotation>
  354
+    </xsd:attribute>
  355
+    <xsd:attribute name="date" type="xsd:dateTime" use="optional">
  356
+      <xsd:annotation>
  357
+        <xsd:documentation>
  358
+          The "date" attribute details when the change was submitted, committed
  359
+          to version-control, etc. It uses the "dateTime" data-format as defined
  360
+          by the XML Schema standard, which is the ISO 8601 format for dates and
  361
+          times. Although ISO 8601 allows strings that specify only the date or
  362
+          time portions, the value of this attribute must contain at least the
  363
+          date, if not a full specification.
  364
+        </xsd:documentation>
  365
+      </xsd:annotation>
  366
+    </xsd:attribute>
  367
+    <xsd:attribute name="id" type="xsd:ID">
  368
+      <xsd:annotation>
  369
+        <xsd:documentation>
  370
+          A changeType instance may specify a unique ID by which it can
  371
+          be referred to from external documents. The value of this attribute
  372
+          must be unique across all "id" attributes in the document, and
  373
+          must conform to the XML Schema definition of an identifier token.
  374
+        </xsd:documentation>
  375
+      </xsd:annotation>
  376
+    </xsd:attribute>
  377
+    <xsd:anyAttribute namespace="##other" processContents="lax" />
  378
+  </xsd:complexType>
  379
+
  380
+  <xsd:element name="change"
  381
+               type="tns:changeType"
  382
+               nillable="false" id="change">
  383
+    <xsd:annotation>
  384
+      <xsd:documentation>
  385
+        A change element defines one change within a release. The change itself
  386
+        may cover several files, but the single description within the change
  387
+        applies to all files referenced within.
  388
+      </xsd:documentation>
  389
+    </xsd:annotation>
  390
+    <xsd:unique name="changeDescriptionLangConstraint">
  391
+      <xsd:annotation>
  392
+        <xsd:documentation>
  393
+          This uniqueness-constraint ensures that only one &lt;description&gt;
  394
+          tag with a given value for the "lang" attribute occurs within the
  395
+          enclosing &lt;change&gt;. Note that "lang" defaults to "en_US".
  396
+        </xsd:documentation>
  397
+      </xsd:annotation>
  398
+      <xsd:selector xpath="tns:description" />
  399
+      <xsd:field xpath="@lang" />
  400
+    </xsd:unique>
  401
+  </xsd:element>
  402
+
  403
+  <xsd:complexType id="releaseType" name="releaseType">
  404
+    <xsd:annotation>
  405
+      <xsd:documentation>
  406
+        The releaseType is the primary piece of information that a ChangeLogML
  407
+        file collects and organizes. A release contains an optional description
  408
+        and other informational blocks, followed by one or more change
  409
+        blocks. The release element is also the greatest user of attributes
  410
+        besides the file element. A releaseType instance must have at least a
  411
+        "version" attribute, uniquely identifying the release itself.
  412
+        Additionally, it must have a "date" attribute to specify the date the
  413
+        release was created.
  414
+      </xsd:documentation>
  415
+    </xsd:annotation>
  416
+    <xsd:sequence>
  417
+      <xsd:element name="description"
  418
+                   type="tns:descriptionType"
  419
+                   minOccurs="0" maxOccurs="unbounded">
  420
+        <xsd:annotation>
  421
+          <xsd:documentation>
  422
+            The &lt;description&gt; element in a release describes the release
  423
+            as a whole, acting as a summary of the release itself.
  424
+          </xsd:documentation>
  425
+        </xsd:annotation>
  426
+      </xsd:element>
  427
+      <xsd:element name="information"
  428
+                   type="tns:informationType"
  429
+                   maxOccurs="unbounded" minOccurs="0" nillable="true">
  430
+        <xsd:annotation>
  431
+          <xsd:documentation>
  432
+            The &lt;information&gt; element is a container which may be used
  433
+            to provide meta-data such as Dublin Core, etc., that is more
  434
+            specific to the release than any general meta-data provided in the
  435
+            &lt;changelog&gt; element's &lt;information&gt; container.
  436
+          </xsd:documentation>
  437
+        </xsd:annotation>
  438
+      </xsd:element>
  439
+      <xsd:element name="source-control"
  440
+                   type="tns:informationType"
  441
+                   maxOccurs="1" minOccurs="0" nillable="true">
  442
+        <xsd:annotation>
  443
+          <xsd:documentation>
  444
+            The &lt;source-control&gt; element for a release acts as a
  445
+            container for information on source-control that is specific to the
  446
+            release, more specific than information contained within any
  447
+            &lt;source-control&gt; block for the &lt;changelog&gt; element.
  448
+          </xsd:documentation>
  449
+        </xsd:annotation>
  450
+      </xsd:element>
  451
+      <xsd:element name="change"
  452
+                   type="tns:changeType"
  453
+                   maxOccurs="unbounded" minOccurs="1">
  454
+        <xsd:annotation>
  455
+          <xsd:documentation>
  456
+            The &lt;change&gt; element is an instance of the type,
  457
+            "changeType". One or more of these blocks must be present in a
  458
+            &lt;release&gt; block. There is no upper-limit to the number of
  459
+            &lt;change&gt; blocks allowed.
  460
+          </xsd:documentation>
  461
+        </xsd:annotation>
  462
+      </xsd:element>
  463
+    </xsd:sequence>
  464
+    <xsd:attribute name="version" type="xsd:token" use="required">
  465
+      <xsd:annotation>
  466
+        <xsd:documentation>
  467
+          The "version" attribute represents the version by which the release
  468
+          of the project is represented. It should be unique, though it is not
  469
+          treated in the same way as the "id" attribute; uniqueness is managed
  470
+          as a function of the schema rather than the definition of the type of
  471
+          data it can contain. It is not restricted to numerals and periods, as
  472
+          file revision-numbers are.
  473
+        </xsd:documentation>
  474
+      </xsd:annotation>
  475
+    </xsd:attribute>
  476
+    <xsd:attribute name="date" type="xsd:dateTime" use="required">
  477
+      <xsd:annotation>
  478
+        <xsd:documentation>
  479
+          The "date" attribute details when the release was made available,
  480
+          bundled, etc. It uses the "dateTime" data-format as defined by the
  481
+          XML Schema standard, which is the ISO 8601 format for dates and
  482
+          times. Although ISO 8601 allows strings that specify only the date or
  483
+          time portions, the value of this attribute must contain at least the
  484
+          date, if not a full specification.
  485
+        </xsd:documentation>
  486
+      </xsd:annotation>
  487
+    </xsd:attribute>
  488
+    <xsd:attribute name="id" type="xsd:ID">
  489
+      <xsd:annotation>
  490
+        <xsd:documentation>
  491
+          A releaseType instance may specify a unique ID by which it can
  492
+          be referred to from external documents. The value of this attribute
  493
+          must be unique across all "id" attributes in the document, and
  494
+          must conform to the XML Schema definition of an identifier token.
  495
+        </xsd:documentation>
  496
+      </xsd:annotation>
  497
+    </xsd:attribute>
  498
+    <xsd:anyAttribute namespace="##other" processContents="lax" />
  499
+  </xsd:complexType>
  500
+
  501
+  <xsd:element name="release"
  502
+               type="tns:releaseType"
  503
+               nillable="false" id="release">
  504
+    <xsd:annotation>
  505
+      <xsd:documentation>
  506
+        The release element details one release within the overall change-log
  507
+        itself. Because the release element has a required attribute that
  508
+        provides a time-stamp, releases may appear in any order within the
  509
+        change-log, since processors can sort the elements by their relative
  510
+        dates.
  511
+      </xsd:documentation>
  512
+    </xsd:annotation>
  513
+    <xsd:unique name="releaseDescriptionLangConstraint">
  514
+      <xsd:annotation>
  515
+        <xsd:documentation>
  516
+          This uniqueness-constraint ensures that only one &lt;description&gt;
  517
+          tag with a given value for the "lang" attribute occurs within the
  518
+          enclosing &lt;release&gt;. Note that "lang" defaults to "en_US".
  519
+        </xsd:documentation>
  520
+      </xsd:annotation>
  521
+      <xsd:selector xpath="tns:description" />
  522
+      <xsd:field xpath="@lang" />
  523
+    </xsd:unique>
  524
+  </xsd:element>
  525
+
  526
+  <xsd:complexType id="subprojectType" name="subprojectType" nillable="true">
  527
+    <xsd:annotation>
  528
+      <xsd:documentation>
  529
+        The subprojectType is a way of allowing a project to express
  530
+        relationship to one or more sub-projects within itself, such that the
  531
+        sub-projects are able to have their own changelogs and release
  532
+        schedules. An instance of subprojectType may explicitly contain
  533
+        &lt;release&gt; blocks (that may or may not simply be replicated from
  534
+        the sub-project's own ChangeLogML), or it may use a facility such as
  535
+        XInclude (or m4 pre-processed, etc.) to dynamically include such blocks
  536
+        from the sub-project.
  537
+      </xsd:documentation>
  538
+    </xsd:annotation>
  539
+    <xsd:sequence>
  540
+      <xsd:element name="description"
  541
+                   type="tns:descriptionType"
  542
+                   maxOccurs="unbounded" minOccurs="1" nillable="false">
  543
+        <xsd:annotation>
  544
+          <xsd:documentation>
  545
+            The &lt;description&gt; block for a subprojectType instance is used
  546
+            to provide a summary of the sub-project, like an abstract or
  547
+            overview for an article.
  548
+          </xsd:documentation>
  549
+        </xsd:annotation>
  550
+      </xsd:element>
  551
+      <xsd:element name="information"
  552
+                   type="tns:informationType"
  553
+                   maxOccurs="unbounded" minOccurs="0" nillable="true">
  554
+        <xsd:annotation>
  555
+          <xsd:documentation>
  556
+            The &lt;information&gt; block is an open-ended container that
  557
+            allows content from other XML namespaces to be included, for such
  558
+            things as Dublin Core Metadata, Creative Commons information, etc.
  559
+          </xsd:documentation>
  560
+        </xsd:annotation>
  561
+      </xsd:element>
  562
+      <xsd:element name="source-control"
  563
+                   type="tns:informationType"
  564
+                   maxOccurs="1" minOccurs="0" nillable="true">
  565
+        <xsd:annotation>
  566
+          <xsd:documentation>
  567
+            Like the previous, the &lt;source-control&gt; block is an
  568
+            open-ended container for the inclusion of content from additional
  569
+            namespaces. However, this container is intended to be specifically
  570
+            used for information on the source-control system employed by the
  571
+            project.
  572
+          </xsd:documentation>
  573
+        </xsd:annotation>
  574
+      </xsd:element>
  575
+      <xsd:element maxOccurs="unbounded" minOccurs="0" ref="tns:release">
  576
+        <xsd:annotation>
  577
+          <xsd:documentation>
  578
+            Lastly, the subprojectType instance will contain zero or more
  579
+            &lt;release&gt; blocks. Ideally these will occur in order, either
  580
+            ascending or descending, of the dates of the given releases. This
  581
+            is optional, since any processor will be capable of sorting the
  582
+            blocks on their "date" attributes.
  583
+          </xsd:documentation>
  584
+        </xsd:annotation>
  585
+      </xsd:element>
  586
+    </xsd:sequence>
  587
+    <xsd:attribute name="id" type="xsd:ID" use="optional">
  588
+      <xsd:annotation>
  589
+        <xsd:documentation>
  590
+          A subprojectType instance may specify a unique ID by which it can
  591
+          be referred to from external documents. The value of this attribute
  592
+          must be unique across all "id" attributes in the document, and
  593
+          must conform to the XML Schema definition of an identifier token.
  594
+        </xsd:documentation>
  595
+      </xsd:annotation>
  596
+    </xsd:attribute>
  597
+    <xsd:attribute name="name" type="xsd:NMTOKEN" use="required">
  598
+      <xsd:annotation>
  599
+        <xsd:documentation>
  600
+          An required attribute, this specifies the name of the sub-project.
  601
+          A schema-level constraint is used to ensure that names are unique
  602
+          between instances of subprojectType.
  603
+        </xsd:documentation>
  604
+      </xsd:annotation>
  605
+    </xsd:attribute>
  606
+  </xsd:complexType>
  607
+
  608
+  <xsd:element name="subproject"
  609
+               type="tns:subprojectType"
  610
+               nillable="true" id="subproject">
  611
+    <xsd:annotation>
  612
+      <xsd:documentation>
  613
+        The subproject element sets up a child-project that is considered part
  614
+        of the main project, but which may release on its own, separate
  615
+        schedule. The parent project may replicate the child's release history
  616
+        into its own ChangeLogML file, or it may use XInclude elements to import
  617
+        it.
  618
+      </xsd:documentation>
  619
+    </xsd:annotation>
  620
+    <xsd:unique name="subprojectDescriptionLangConstraint">
  621
+      <xsd:annotation>
  622
+        <xsd:documentation>
  623
+          This uniqueness-constraint ensures that only one &lt;description&gt;
  624
+          tag with a given value for the "lang" attribute occurs within the
  625
+          enclosing &lt;subproject&gt;. Note that "lang" defaults to "en_US".
  626
+        </xsd:documentation>
  627
+      </xsd:annotation>
  628
+      <xsd:selector xpath="tns:description" />
  629
+      <xsd:field xpath="@lang" />
  630
+    </xsd:unique>
  631
+  </xsd:element>
  632
+
  633
+  <xsd:complexType id="changelogType" name="changelogType" nillable="false">
  634
+    <xsd:annotation>
  635
+      <xsd:documentation>
  636
+        An instance of changelogType will generally be the root-level element
  637
+        in a ChangeLogML document. It contains the project-level information
  638
+        such as name, summary, etc. as well as acting as a container for the
  639
+        &lt;release&gt; blocks that actually iterate the project's change
  640
+        history.
  641
+      </xsd:documentation>
  642
+    </xsd:annotation>
  643
+    <xsd:sequence>
  644
+      <xsd:element name="project"
  645
+                   type="xsd:string"
  646
+                   maxOccurs="1" minOccurs="1" nillable="false">
  647
+        <xsd:annotation>
  648
+          <xsd:documentation>
  649
+            This is the name of the project that this changelog covers.
  650
+          </xsd:documentation>
  651
+        </xsd:annotation>
  652
+      </xsd:element>
  653
+      <xsd:element name="title"
  654
+                   type="xsd:string"
  655
+                   maxOccurs="1" minOccurs="0" nillable="false">
  656
+        <xsd:annotation>
  657
+          <xsd:documentation>
  658
+            This is the title for the project, a sort of longer "name" that can
  659
+            be used for web pages, etc.
  660
+          </xsd:documentation>
  661
+        </xsd:annotation>
  662
+      </xsd:element>
  663
+      <xsd:element name="description"
  664
+                   type="tns:descriptionType"
  665
+                   maxOccurs="unbounded" minOccurs="1" nillable="false">
  666
+        <xsd:annotation>
  667
+          <xsd:documentation>
  668
+            The &lt;description&gt; block for a changelogType instance is used
  669
+            to provide a summary of the project, like an abstract or overview
  670
+            for an article.
  671
+          </xsd:documentation>
  672
+        </xsd:annotation>
  673
+      </xsd:element>
  674
+      <xsd:element name="information"
  675
+                   type="tns:informationType"
  676
+                   maxOccurs="unbounded" minOccurs="0" nillable="true">
  677
+        <xsd:annotation>
  678
+          <xsd:documentation>
  679
+            The &lt;information&gt; block is an open-ended container that
  680
+            allows content from other XML namespaces to be included, for such
  681
+            things as Dublin Core Metadata, Creative Commons information, etc.
  682
+          </xsd:documentation>
  683
+        </xsd:annotation>
  684
+      </xsd:element>
  685
+      <xsd:element name="source-control"
  686
+                   type="tns:informationType"
  687
+                   maxOccurs="1" minOccurs="0" nillable="true">
  688
+        <xsd:annotation>
  689
+          <xsd:documentation>
  690
+            Like the previous, the &lt;source-control&gt; block is an
  691
+            open-ended container for the inclusion of content from additional
  692
+            namespaces. However, this container is intended to be specifically
  693
+            used for information on the source-control system employed by the
  694
+            project.
  695
+          </xsd:documentation>
  696
+        </xsd:annotation>
  697
+      </xsd:element>
  698
+      <xsd:element maxOccurs="unbounded" minOccurs="0" ref="tns:release">
  699
+        <xsd:annotation>
  700
+          <xsd:documentation>
  701
+            The changelogType instance will contain zero or more &lt;release&gt;
  702
+            blocks. Ideally these will occur in order, either ascending or
  703
+            descending, of the dates of the given releases. This is optional,
  704
+            since any processor will be capable of sorting the blocks on their
  705
+            "date" attributes.
  706
+          </xsd:documentation>
  707
+        </xsd:annotation>
  708
+      </xsd:element>
  709
+      <xsd:element maxOccurs="unbounded" minOccurs="0" ref="tns:subproject">
  710
+        <xsd:annotation>
  711
+          <xsd:documentation>
  712
+            Lastly, the changelogType instance may contain zero or more
  713
+            &lt;subproject&gt; blocks. These blocks provide information on
  714
+            sub-projects of the main project, and are distinguished by a unique
  715
+            "name" attribute on each block. These elements may be null, since
  716
+            there is no requirement that a sub-project have any releases before
  717
+            the parent project does.
  718
+          </xsd:documentation>
  719
+        </xsd:annotation>
  720
+      </xsd:element>
  721
+    </xsd:sequence>
  722
+    <xsd:attribute name="id" type="xsd:ID">
  723
+      <xsd:annotation>
  724
+        <xsd:documentation>
  725
+          A changelogType instance may specify a unique ID by which it can
  726
+          be referred to from external documents. The value of this attribute
  727
+          must be unique across all "id" attributes in the document, and
  728
+          must conform to the XML Schema definition of an identifier token.
  729
+        </xsd:documentation>
  730
+      </xsd:annotation>
  731
+    </xsd:attribute>
  732
+  </xsd:complexType>
  733
+
  734
+  <xsd:element name="changelog"
  735
+               type="tns:changelogType"
  736
+               nillable="false" id="changelog">
  737
+    <xsd:annotation>
  738
+      <xsd:documentation>
  739
+        The changelog element is intended as the document root element. It
  740
+        contains descriptive elements (&lt;description&gt;,
  741
+        &lt;source-control&gt;, etc.) and one or more release blocks.
  742
+      </xsd:documentation>
  743
+    </xsd:annotation>
  744
+    <xsd:unique name="changelogDescriptionLangConstraint">
  745
+      <xsd:annotation>
  746
+        <xsd:documentation>
  747
+          This uniqueness-constraint ensures that only one &lt;description&gt;
  748
+          tag with a given value for the "lang" attribute occurs within the
  749
+          enclosing &lt;changelog&gt;. Note that "lang" defaults to "en_US".
  750
+        </xsd:documentation>
  751
+      </xsd:annotation>
  752
+      <xsd:selector xpath="tns:description" />
  753
+      <xsd:field xpath="@lang" />
  754
+    </xsd:unique>
  755
+    <xsd:key name="releaseVersionConstraint">
  756
+      <xsd:annotation>
  757
+        <xsd:documentation>
  758
+          This key-constraint ensures that each &lt;release&gt; block has a
  759
+          distinct and unique "version" attribute.
  760
+        </xsd:documentation>
  761
+      </xsd:annotation>
  762
+      <xsd:selector xpath="tns:release" />
  763
+      <xsd:field xpath="@version" />
  764
+    </xsd:key>
  765
+    <xsd:key name="subprojectNameConstraint">
  766
+      <xsd:annotation>
  767
+        <xsd:documentation>
  768
+          This key-constraint ensures that each &lt;subproject&gt; block has a
  769
+          distinct and unique "name" attribute.
  770
+        </xsd:documentation>
  771
+      </xsd:annotation>
  772
+      <xsd:selector xpath="tns:subproject" />
  773
+      <xsd:field xpath="@name" />
  774
+    </xsd:key>
  775
+  </xsd:element>
  776
+
  777
+</xsd:schema>
  778
+

0 notes on commit 887a4ac

Please sign in to comment.
Something went wrong with that request. Please try again.