Skip to content

Commit

Permalink
Updates for NewsML-G2 2.29 to be voted at Spring Meeting 2020. (#8)
Browse files Browse the repository at this point in the history
Updates for NewsML-G2 2.29, approved at Spring Meeting 2020.
  • Loading branch information
bquinn authored Jun 12, 2020
1 parent 72311fa commit 1599bdf
Show file tree
Hide file tree
Showing 119 changed files with 42,389 additions and 12,126 deletions.
104 changes: 67 additions & 37 deletions MAINTENANCE.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,74 @@
# Maintenance notes

Notes only used by the maintainers of NewsML-G2 at IPTC.
These notes are only of relevance to the maintainers of NewsML-G2 at IPTC.

## Releasing a new version of NewsML-G2

Steps to release an update to the standard:
Steps to create and release an update to the standard:

1. Create a new GitHub branch for the changes: `git checkout -b my-new-branch`
2. For a major or minor version change...
For a revision change, copy the XML-Schema_FileVersion_# folder to the
appropriate revision number (the first release is always revision 1, the
first correction is always revision 2)
3. Check that the version numbers are correct in `release-tools/newsmlg2-config-vars.sh`
4. Update the version number in all files: (TODO: write a script for this based on Michael's C# tool)
1. Update `release-tools/newsmlg2-config-vars.sh` to use the correct version number. This is
used by the release scripts.
2. Change filenames of specification/individual XSDs to match the new version number using
`release-tools/update_xsd_version_no.sh`
3. Change version number references within each file in specification/individual/*.xsd
4. Change version number references within each file in examples/*.xml
5. `specification/individual/NewsML-xx-Framework` file has two headers - both need to be
updated with version number and any date changes - can cut and paste from one section to the other.
5. Make the XML schema changes that are needed in the `XML-Schema_FileVersion_#` folder, including
any outstanding [change requests from the dev.iptc.org site](http://dev.iptc.org/G2-Change-Requests-HP)
6. Copy from the XML-Schema_FileVersion_# folder to the specification/individual folder:
`release-tools/move_to_individual.sh`
6a. change include filename references in all version to get rid of _<revision> numbers
7. Run the script that uses an XSLT stylesheet to create the master version from the framework
version in the specification/individual version:
### High-level overview of the steps required
- Copy the latest version of schema files into the
`specification/FileVersion_<revision>` folder based on our new revision number
- Update the files in `specification/FileVersion_<revision>` with new version
numbers and dates
- Make the required schema changes to the `specification/FileVersion<revision>`
files
- Create the "All" version from the individual versions in the
`FileVersion_<revision>` folder
- Copy the new files to specification/individual folder, removing revision info
from the filenames
- Check that the schema file works by validating against example documents
- Create documentation using XML Spy
- Make release version to be uploaded to iptc.org

### In detail
1. Create a new GitHub branch for the changes: `git checkout -b newsmlN.NN`
(or `newsmlN.NN_N`)
2. Update the `release-tools/newsmlg2-config-vars.sh` file with the version
numbers of the old and new versions and revision
3. Don't forget to run it! `source release-tools/newsmlg2-config-vars.sh`
4. Run `release-tools/update-xsd-version-no.sh` to update
`XML-Schema_FileVersion_N` files to refer to the new version
5. Run `release-tools/update-version-no-in-files.sh` to update version
numbers and dates in the schema documents
6. By hand, make the XML schema changes that are needed in the
`XML-Schema_FileVersion_#` folder, including any outstanding [change
requests from the dev.iptc.org
site](http://dev.iptc.org/G2-Change-Requests-HP)
7. Run `release-tools/move-to-individual.sh`
This copies and renames the individual schema component files from the
`XML-Schema_FileVersion_#` folder to the `specification/individual` folder.
The script also removes a _<revision> reference inside the schema files.
8. Run the script that uses an XSLT stylesheet to create the master version
from the framework version in the specification/individual folder:
`release-tools/create-power-xsd-from-framework-xsd.sh`
8. Run `xmllint` over the examples folder to make sure no errors have been introduced using a script:
`release-tools/test-newsml-examples.sh`
9. Use XML Spy to create XML Schema documentation from the master XSD schema file and the
"individual" schemas. Save them to `specification/XML-Schema-Doc-Power`.
10. Print change requests from dev.iptc.org to PDF for inclusion in release pack to be sent to
delegates, if necessary.
11. Run the script to move all files to the release folder and create ZIP files to send to delegates:
`release-tools/create-release.sh`
12. Commit and push all changes to GitHub: `git push origin -u my-new-branch`
(Our `.gitignore` file already suppresses sending ZIP files and the XML Schema docs to GitHub.)
13. Upload the "release/N.NN" folder and the ZIP files to the iptc.org server
14. Update the redirects on iptc.org to point to the latest versions of XML Schema documentation.
15. Update the http://dev.iptc.org/G2-Approved-Changes page documenting the changes made.
9. Run `release-tools/update-version-no-in-examples.sh` which updates version
number references within each file in examples/*.xml (except for the older
examples which need to refer to 2.24 because that's the last version
supported by the Core version of the standard)
10. Run `release-tools/test-newsml-examples.sh` which runs `xmllint` over the
examples folder to make sure no errors have been introduced.
11. Use XML Spy to create XML Schema documentation from the master XSD schema
file and the "individual" schemas. Save them to
`specification/XML-Schema-Doc-Power`.
12. Print-to-PDF change requests from dev.iptc.org for inclusion in release pack
to be sent to delegates, if necessary.
13. Run the script to move all files to the release folder and create ZIP files
of the release: `release-tools/create-release.sh`
14. Commit and push all changes to GitHub: `git push origin -u my-new-branch`
(Our `.gitignore` file already suppresses sending ZIP files and the XML
Schema docs to GitHub.).
15. Create a pull request from the branch on GitHub.com.

### After the Standards Committee approves the new version:

1. Update the APPROVED_DATE in `release-tools/newsmlg2-config-vars.sh`
2. Run the above steps 3, 5, 7, 8, 10, 11, 13, 14 again to update files with
the approval date (this should be quick, just running scripts, except for
the XML Spy documentation step)
3. Merge the pull request into master on GitHub
4. Upload the "release/N.NN" folder and the ZIP files to the iptc.org server
5. Update the redirects on iptc.org to point to the latest versions of XML
Schema documentation.
6. Update the http://dev.iptc.org/G2-Approved-Changes page documenting the
changes made.
36 changes: 27 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,38 @@

IPTC NewsML-G2 standard for the exchange of news and news-related information.

Learn more about its features and who uses it at https://iptc.org/standards/newsml-g2/.
Learn more about its features and who uses it at
[https://iptc.org/standards/newsml-g2/](https://iptc.org/standards/newsml-g2/).

The GitHub repository (https://github.com/iptc/newsml-g2) provides all NewsML-G2 files in the master branch.
The GitHub repository
([https://github.com/iptc/newsml-g2](https://github.com/iptc/newsml-g2)
provides all NewsML-G2 files in the master branch.

The current files are the ones of the latest version 2.28, revision 2.
This is version 2.29, approved by the IPTC Standards Committee in May 2020.

The files of the current and of previous versions from 2.23 on can be retrieved as GitHub releases from https://github.com/iptc/newsml-g2/releases, and also downloaded from https://www.iptc.org/std/NewsML-G2/
The files of the current and of previous versions (from 2.23 on) can be retrieved
as GitHub releases from
[https://github.com/iptc/newsml-g2/releases](https://github.com/iptc/newsml-g2/releases),
and also downloaded from
[https://www.iptc.org/std/NewsML-G2/](https://www.iptc.org/std/NewsML-G2/).

A full history of versions and a list of all changes is available at http://dev.iptc.org/G2-Standards
A full history of versions and a list of all changes is available at
[http://dev.iptc.org/G2-Standards](http://dev.iptc.org/G2-Standards)

The NewsML-G2 Implementation Guidelines are available at https://www.iptc.org/std/NewsML-G2/guidelines
## Documentation

The latest NewsML-G2 Specification in HTML is available at https://www.iptc.org/std/NewsML-G2/specification/
The NewsML-G2 Implementation Guidelines are available at
[https://www.iptc.org/std/NewsML-G2/guidelines](https://www.iptc.org/std/NewsML-G2/guidelines)

XML Schema documentation of the latest version is available in this package under the folder `specification/XML-Schema-Doc-Power/`
The latest NewsML-G2 Specification in HTML is available at
[https://www.iptc.org/std/NewsML-G2/specification/](https://www.iptc.org/std/NewsML-G2/specification/)

For any questions, comments or suggestions, please join the public NewsML-G2 forum at https://groups.io/g/iptc-newsml-g2
XML Schema documentation of the latest version is available in this package
under the folder
[specification/XML-Schema-Doc-Power/](specification/XML-Schema-Doc-Power/)

## Further information and questions

For any questions, comments or suggestions, please join the public NewsML-G2
forum at
[https://groups.io/g/iptc-newsml-g2](https://groups.io/g/iptc-newsml-g2).
56 changes: 56 additions & 0 deletions dev-schema/NewsML-G2dev_0.4_nar229.xsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
IPTC - International Press Telecommunications Council
25 Southampton Buildings, London WC2A 1AL, United Kingdom
www.iptc.org
This document is published under the Creative Commons Attribution 4.0 licence.
See the full license agreement at http://creativecommons.org/licenses/by/4.0/
By obtaining, using and/or copying this document, you (the licensee) agree that
you have read, understood, and will comply with the terms and conditions of the
license.
-->
<!-- xmlns="http://www.w3.org/2001/XMLSchema"-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="https://iptc.org/std-dev/nar/" xmlns:nar="http://iptc.org/std/nar/2006-10-01/" targetNamespace="https://iptc.org/std-dev/nar/" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.4" xml:lang="en">
<xs:annotation>
<xs:documentation>This XML Schema is created for a NewsML-G2 development namespace with the URI https://iptc.org/std-dev/nar/. It imports a NewsML-G2 2.x XML Schema and its elements build on attributes, attribute groups and elements defined by it.
</xs:documentation>
<xs:documentation>NewsML-G2 Dev 0.4 XML Schema - UNDER CONSTRUCTION</xs:documentation>
<xs:documentation>Date of creation of this XML Schema document revision: 2020-05-29</xs:documentation>
<xs:documentation>Created by Michael Steidl</xs:documentation>
<xs:documentation>Revised by Brendan Quinn</xs:documentation>
</xs:annotation>
<xs:import namespace="http://iptc.org/std/nar/2006-10-01/" schemaLocation="http://www.iptc.org/std/NewsML-G2/2.29/specification/NewsML-G2_2.29-spec-All-Power.xsd"/>
<!-- The NewsMLG2 schema contain the NAR building blocks used for experimental NewsML-G2 -->
<!-- ========================================================================================= -->
<!-- Advice element: a wrapper of child properties, is setting role and environment -->
<xs:element name="advice">
<xs:complexType>
<xs:sequence>
<xs:element name="importance" type="nar:Flex1ConceptPropType" minOccurs="0"/>
<xs:element name="lifetime" type="nar:Flex1ConceptPropType" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="nar:commonPowerAttributes"/>
<xs:attribute name="role" type="nar:QCodeType">
<xs:annotation>
<xs:documentation>A refinement of what kind of alternative is provided by this identifier - expressed by a QCode</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="roleuri" type="nar:IRIType">
<xs:annotation>
<xs:documentation>A refinement of what kind of alternative is provided by this identifier - expressed by an URI</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="environment" type="nar:QCodeListType" use="optional">
<xs:annotation>
<xs:documentation> A qualifier which indicates the business environment in which the identifier can be used to access the content - expressed by a QCode</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="environmenturi" type="nar:IRIListType" use="optional">
<xs:annotation>
<xs:documentation> A qualifier which indicates the business environment in which the identifier can be used to access the content - expressed by a URI</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<!-- ========================================================================================= -->
</xs:schema>
78 changes: 63 additions & 15 deletions documentation/NewsML-G2-documentation.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,76 @@
# NewsML-G2 Documentation

## XML Schema documentation
The latest version of NewsML-G2 is 2.29, approved by the IPTC Standards
Committee in May 2020.

## NewsML-G2 Quick Start guides

We have created a set of Quick Start guides to help developers understand the
key concepts behind NewsML-G2.

There are currently five Quick Start guides:

XML Schema docs generated directly from the XSD are available in the specification folder:
https://www.iptc.org/std/NewsML-G2/2.28/specification/XML-Schema-Doc-Power/
* [NewsML-G2 Quick Start: Basics](https://www.iptc.org/std-dev/NewsML-G2/documentation/quickstart-basics.html)
* [NewsML-G2 Quick Start: Text](https://www.iptc.org/std-dev/NewsML-G2/documentation/quickstart-text.html)
* [NewsML-G2 Quick Start: Pictures](https://www.iptc.org/std-dev/NewsML-G2/documentation/quickstart-pictures.html)
* [NewsML-G2 Quick Start: Video](https://www.iptc.org/std-dev/NewsML-G2/documentation/quickstart-video.html)
* [NewsML-G2 Quick Start: Packages](https://www.iptc.org/std-dev/NewsML-G2/documentation/quickstart-packages.html)

## NewsML-G2 Specification in HTML
After reading the Quick Start guides, we recommend reading the rest of
the
[NewsML-G2 Guidelines](https://www.iptc.org/std/NewsML-G2/guidelines),
and consulting the full
[NewsML-G2 Specification](https://www.iptc.org/std/NewsML-G2/specification/)
and
[XML Schema documentation](https://www.iptc.org/std/NewsML-G2/2.29/specification/XML-Schema-Doc-Power/)
for finer details.

The latest version of the NewsML-G2 Specification in HTML is 2.27.
## NewsML-G2 Specification document

The latest version of the NewsML-G2 Specification in HTML is 2.28.

This is available at
https://www.iptc.org/std/NewsML-G2/2.27/specification/NewsML-G2-2.27-specification.html
[https://www.iptc.org/std/NewsML-G2/2.28/specification/NewsML-G2-2.28-specification.html](https://www.iptc.org/std/NewsML-G2/2.28/specification/NewsML-G2-2.28-specification.html)

The latest version is always hosted at
https://www.iptc.org/std/NewsML-G2/specification/

# NewsML-G2 Guidelines in HTML
[https://www.iptc.org/std/NewsML-G2/specification/](https://www.iptc.org/std/NewsML-G2/specification/)

The IPTC NewsML-G2 Guidelines were published as PDF files since the first release in 2009.
As many users showed interest in the guidelines as a web document, the NewsML-G2 Working
Group transformed the PDF Guidelines document to HTML.
## NewsML-G2 Guidelines document

The updated web version of the Guidelines are published now at:
The latest version of the NewsML-G2 Guidelines is published at
[https://www.iptc.org/std/NewsML-G2/guidelines](https://www.iptc.org/std/NewsML-G2/guidelines)

Please check this URL, it shows the full Guidelines with all Quick Start variants for
Text, Photo, Video and Packages integrated into one documentation package.
### Guidelines for older versions of NewsML-G2

Guidelines for older versions of NewsML-G2 (up to 2.25) were maintained in PDF format.
The last version to be published in PDF was the
[NewsML 2.25 guidelines in PDF](https://www.iptc.org/std/NewsML-G2/2.25/documentation/IPTC-NewsML-G2-Implementation_Guide_9.0.2.pdf).

## XML Schema documentation

[NewsML-G2 XML Schema docs](https://www.iptc.org/std/NewsML-G2/2.29/specification/XML-Schema-Doc-Power/)
generated directly from the NewsML-G2 XML Schema are available in the
specification folder:
[https://www.iptc.org/std/NewsML-G2/2.29/specification/XML-Schema-Doc-Power/](https://www.iptc.org/std/NewsML-G2/2.29/specification/XML-Schema-Doc-Power/)

The XML Schema docs are separated into documentation for each of the major components of NewsML-G2:

* [CatalogItem](https://www.iptc.org/std-dev/NewsML-G2/2.29/specification/XML-Schema-Doc-Power/NewsML-G2_2.29-spec-CatalogItem-Power.html)
* [ConceptItem](https://www.iptc.org/std-dev/NewsML-G2/2.29/specification/XML-Schema-Doc-Power/NewsML-G2_2.29-spec-ConceptItem-Power.html)
* [Framework](https://www.iptc.org/std-dev/NewsML-G2/2.29/specification/XML-Schema-Doc-Power/NewsML-G2_2.29-spec-Framework-Power.html)
* [KnowledgeItem](https://www.iptc.org/std-dev/NewsML-G2/2.29/specification/XML-Schema-Doc-Power/NewsML-G2_2.29-spec-KnowledgeItem-Power.html)
* [NewsItem](https://www.iptc.org/std-dev/NewsML-G2/2.29/specification/XML-Schema-Doc-Power/NewsML-G2_2.29-spec-NewsItem-Power.html)
* [NewsMessage](https://www.iptc.org/std-dev/NewsML-G2/2.29/specification/XML-Schema-Doc-Power/NewsML-G2_2.29-spec-NewsMessage-Power.html)
* [PackageItem](https://www.iptc.org/std-dev/NewsML-G2/2.29/specification/XML-Schema-Doc-Power/NewsML-G2_2.29-spec-PackageItem-Power.html)
* [PlanningItem](https://www.iptc.org/std-dev/NewsML-G2/2.29/specification/XML-Schema-Doc-Power/NewsML-G2_2.29-spec-PlanningItem-Power.html)

## NewsML-G2 Structure Matrix

A matrix showing which attributes apply to which elements is maintained as an Excel spreadsheet:
[https://www.iptc.org/std/NewsML-G2/2.26/documentation/NewsML-G2_2.26-structMatrix_1.xls](https://www.iptc.org/std/NewsML-G2/2.26/documentation/NewsML-G2_2.26-structMatrix_1.xls)

## Further information and questions

For any questions, comments or suggestions, please join the public NewsML-G2
forum at
[https://groups.io/g/iptc-newsml-g2](https://groups.io/g/iptc-newsml-g2).
4 changes: 2 additions & 2 deletions examples/LISTING_12_Knowledge_Item_for_Access_Codes.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
xmlns="http://iptc.org/std/nar/2006-10-01/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://iptc.org/std/nar/2006-10-01/
./NewsML-G2_2.28-spec-All-Power.xsd"
./NewsML-G2_2.29-spec-All-Power.xsd"
guid="urn:newsml:iptc.org:20090202:ncdki-accesscode" version="11"
standard="NewsML-G2"
standardversion="2.28"
standardversion="2.29"
conformance="power" >
<catalogRef
href="http://www.iptc.org/std/catalog/catalog.IPTC-G2-Standards_32.xml" />
Expand Down
4 changes: 2 additions & 2 deletions examples/LISTING_13_Complete_Catalog_Item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
xmlns="http://iptc.org/std/nar/2006-10-01/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://iptc.org/std/nar/2006-10-01/
./NewsML-G2_2.28-spec-All-Power.xsd"
./NewsML-G2_2.29-spec-All-Power.xsd"
guid="urn:newsml:iptc.org:20130517:catalog"
version="31"
standard="NewsML-G2"
standardversion="2.28"
standardversion="2.29"
conformance="power"
xml:lang="en-GB">
<catalogRef
Expand Down
4 changes: 2 additions & 2 deletions examples/LISTING_14_Event_sent_as_a_Concept_Item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
xmlns="http://iptc.org/std/nar/2006-10-01/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://iptc.org/std/nar/2006-10-01/
./NewsML-G2_2.28-spec-All-Power.xsd"
./NewsML-G2_2.29-spec-All-Power.xsd"
guid="urn:newsml:iptc.org:20160422:qqwpiruuew4711"
version="11"
standard="NewsML-G2"
standardversion="2.28"
standardversion="2.29"
conformance="power"
xml:lang="en">
<catalogRef href="http://www.iptc.org/std/catalog/catalog.IPTC-G2-Standards_32.xml" />
Expand Down
Loading

0 comments on commit 1599bdf

Please sign in to comment.