[libxml2] Update NewsML DTD in test suite



commit f480f7509c65170083f7bba8f3c5beda0cb8d2df
Author: Nick Wellnhofer <wellnhofer aevum de>
Date:   Thu Feb 3 14:43:17 2022 +0100

    Update NewsML DTD in test suite
    
    Switch to version 1.2 which has a clearer license.
    
    Fixes #291.

 result/valid/index.xml                             |    2 +-
 test/valid/dtds/{NewsMLv1.0.dtd => NewsMLv1.2.dtd} | 1311 +++++++++++++-------
 test/valid/index.xml                               |    2 +-
 3 files changed, 843 insertions(+), 472 deletions(-)
---
diff --git a/result/valid/index.xml b/result/valid/index.xml
index 734fa4d6..ee034b84 100644
--- a/result/valid/index.xml
+++ b/result/valid/index.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE NewsML PUBLIC "urn:newsml:iptc.org:20001006:NewsMLv1.0:1" "dtds/NewsMLv1.0.dtd" [
+<!DOCTYPE NewsML SYSTEM "dtds/NewsMLv1.2.dtd" [
 <!ENTITY % nitf SYSTEM "dtds/nitf-2-5.dtd">
 <!--
        News Industry Text Format
diff --git a/test/valid/dtds/NewsMLv1.0.dtd b/test/valid/dtds/NewsMLv1.2.dtd
similarity index 64%
rename from test/valid/dtds/NewsMLv1.0.dtd
rename to test/valid/dtds/NewsMLv1.2.dtd
index 5799b298..10f4fb80 100644
--- a/test/valid/dtds/NewsMLv1.0.dtd
+++ b/test/valid/dtds/NewsMLv1.2.dtd
@@ -1,71 +1,178 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!-- 
-                   ===========================================
-                   NewsML Document Type Definition Version 1.0
-                   ===========================================
+              ===========================================
+              NewsML Document Type Definition Version 1.2
+              ===========================================
                  International Press Telecommunications Council
-                                6 October 2000
-                            Copyright (c) IPTC, 2000
+                             V 1.2   approved 10 October 2003
+                            Copyright (c) IPTC, 2000 - 2003
                               All rights reserved
                          NewsML is a trademark of IPTC
 
-                     ======================================
-                     DO NOT REMOVE THESE LICENCE CONDITIONS
-                     ======================================
-         LICENCE OF THE IPTC NewsML TRADEMARK TO NON-MEMBERS OF THE IPTC
+                ======================================
+                DO NOT REMOVE THESE LICENCE CONDITIONS
+                ======================================
+Non-Exclusive License Agreement for International Press
+Telecommunications Council Specifications and Related Documentation
 
-Use of the IPTC trademark shall be licensed by the IPTC ("the Licensor") to a
-Non-Member ("the Licensee") in consideration of the following obligations
-undertaken by the Licensee under the terms of this contract.
+IMPORTANT: International Press Telecommunications Council (IPTC)
+standard specifications for news (the Specifications) and supporting
+software, documentation, technical reports, web sites and other
+material related to the Specifications (the Materials) including the
+document accompanying this license (the Document), whether in a paper
+or electronic format, are made available to you subject to the terms
+stated below. By obtaining, using and/or copying the Specifications or
+Materials, you (the licensee) agree that you have read, understood,
+and will comply with the following terms and conditions.
 
- 1. The Licensee recognises the Licensor as the sole owner of the intellectual
-    property protected by the trademark.
+1. The Specifications and Materials are licensed for use only on the
+condition that you agree to be bound by the terms of this license.
+Subject to this and other licensing requirements contained herein, you
+may, on a non-exclusive basis, use the Specifications and Materials.
 
- 2. The Licensee recognises that the Licensor has the right to grant licenses
-    of the intellectual property protected by the trademark and has agreed to
-    grant such a licence to the Licensee in the terms set out in this contract.
+2. The IPTC openly provides the Specifications and Materials for
+voluntary use by individuals, partnerships, companies, corporations,
+organizations and any other entity for use at the entity's own risk.
+This disclaimer, license and release is intended to apply to the IPTC,
+its officers, directors, agents, representatives, members,
+contributors, affiliates, contractors, or co-venturers acting jointly
+or severally.
 
- 3. The Licensee shall not during the subsistence of this contract or at any
-    future time register to use in its own name as proprietor any of the
-    intellectual property protected by the trademark. 
+3. The Document and translations thereof may be copied and furnished
+to others, and derivative works that comment on or otherwise explain
+it or assist in its implementation may be prepared, copied, published
+and distributed, in whole or in part, without restriction of any kind,
+provided that the copyright and license notices and references to the
+IPTC appearing in the Document and the terms of this Specifications
+License Agreement are included on all such copies and derivative
+works. Further, upon the receipt of written permission from the IPTC,
+the Document may be modified for the purpose of developing
+applications that use IPTC Specifications or as required to translate
+the Document into languages other than English.
 
- 4. The Licensee shall not claim any right title or interest in the
-    intellectual property or any part of it save as is granted by this contract.
+4. Any use, duplication, distribution, or exploitation of the Document
+and Specifications and Materials in any manner is at your own risk.
 
- 5. The Licensee shall immediately call to the attention of the Licensor the use
-    of any part of the intellectual property by any third party or any activity
-    of any third party which might in the opinion of the Licensee amount to
-    infringement of the rights protected by the trademark.
+5. NO WARRANTY, EXPRESSED OR IMPLIED, IS MADE REGARDING THE ACCURACY,
+ADEQUACY, COMPLETENESS, LEGALITY, RELIABILITY OR USEFULNESS OF ANY
+INFORMATION CONTAINED IN THE DOCUMENT OR IN ANY SPECIFICATION OR OTHER
+PRODUCT OR SERVICE PRODUCED OR SPONSORED BY THE IPTC. THE DOCUMENT AND
+THE INFORMATION CONTAINED HEREIN AND INCLUDED IN ANY SPECIFICATION OR
+OTHER PRODUCT OR SERVICE OF THE IPTC IS PROVIDED ON AN "AS IS" BASIS.
+THE IPTC DISCLAIMS ALL WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
+INCLUDING, BUT NOT LIMITED TO, ANY ACTUAL OR ASSERTED WARRANTY OF NON-
+INFRINGEMENT OF PROPRIETARY RIGHTS, MERCHANTABILITY, OR FITNESS FOR A
+PARTICULAR PURPOSE. NEITHER THE IPTC NOR ITS CONTRIBUTORS SHALL BE
+HELD LIABLE FOR ANY IMPROPER OR INCORRECT USE OF INFORMATION. NEITHER
+THE IPTC NOR ITS CONTRIBUTORS ASSUME ANY RESPONSIBILITY FOR ANYONE'S
+USE OF INFORMATION PROVIDED BY THE IPTC. IN NO EVENT SHALL THE IPTC OR
+ITS CONTRIBUTORS BE LIABLE TO ANYONE FOR DAMAGES OF ANY KIND,
+INCLUDING BUT NOT LIMITED TO, COMPENSATORY DAMAGES, LOST PROFITS, LOST
+DATA OR ANY FORM OF SPECIAL, INCIDENTAL, INDIRECT, CONSEQUENTIAL OR
+PUNITIVE DAMAGES OF ANY KIND WHETHER BASED ON BREACH OF CONTRACT OR
+WARRANTY, TORT, PRODUCT LIABILITY OR OTHERWISE.
 
- 6. The Licensee shall not assign the benefit of this contract or grant any
-    sub-licence without the prior written consent of the Licensor.
+6. The IPTC takes no position regarding the validity or scope of any
+Intellectual Property or other rights that might be claimed to pertain
+to the implementation or use of the technology described in the
+Document or the extent to which any license under such rights might or
+might not be available. The IPTC does not represent that it has made
+any effort to identify any such rights. Copies of claims of rights
+made available for publication, assurances of licenses to be made
+available, or the result of an attempt made to obtain a general
+license or permission for the use of such proprietary rights by
+implementers or users of the Specifications and Materials, can be
+obtained from the Managing Director of the IPTC.
 
- 7. Use of the IPTC trademark is licensed only to those Licensees who comply
-    with the requirements of the official published description of NewsML.
+7. By using the Specifications and Materials including the Document in
+any manner or for any purpose, you release the IPTC from all
+liabilities, claims, causes of action, allegations, losses, injuries,
+damages, or detriments of any nature arising from or relating to the
+use of the Specifications, Materials or any portion thereof. You
+further agree not to file a lawsuit, make a claim, or take any other
+formal or informal legal action against the IPTC, resulting from your
+acquisition, use, duplication, distribution, or exploitation of the
+Specifications, Materials or any portion thereof. Finally, you hereby
+agree that the IPTC is not liable for any direct, indirect, special or
+consequential damages arising from or relating to your acquisition,
+use, duplication, distribution, or exploitation of the Specifications,
+Materials or any portion thereof.
 
- 8. The Licensee promises to respect the integrity and quality standard of the
-    trademark and shall refrain from all acts and omissions which threaten the
-    integrity of the trademark as a mark of quality.
+8. Specifications and Materials may be downloaded or copied provided
+that ALL copies retain the ownership, copyright and license notices.
 
- 9. The Licensee shall communicate immediately to the IPTC any instances of
-    actual or suspected misuse or non-compliance with the official published
-    description of NewsML which come to the attention of the Licensee.
+9. Materials may not be edited, modified, or presented in a context
+that creates a misleading or false impression or statement as to the
+positions, actions, or statements of the IPTC.
 
-10. The Licensee shall, at the request of the IPTC Management Committee acting
-    unanimously, accede to any reasonable request of the IPTC to inspect the
-    address of the Licensee to verify compliance and each Licensee shall afford
-    to the IPTC such assistance as is requested by the IPTC in response to the
-    latter's reasonable enquiries in instances of suspected non-compliance with
-    the official published description of NewsML requirements.
+10. The name and trademarks of the IPTC may not be used in
+advertising, publicity, or in relation to products or services and
+their names without the specific, written prior permission of the
+IPTC. Any permitted use of the trademarks of the IPTC, whether
+registered or not, shall be accompanied by an appropriate mark and
+attribution, as agreed with the IPTC.
 
-The Licensee shall from time to time provide the IPTC with the full address of
-its place of business and that place will be deemed the Licensee's address.
+11. Specifications may be extended by both members and non-members to
+provide additional functionality (Extended Specifications) provided
+that there is a clear recognition of the IPTC IP and its ownership in
+the Extended Specifications and the related documentation and provided
+that the extensions are clearly identified and provided that a
+perpetual license is granted by the creator of the Extended
+Specifications for other members and non-members to use the Extended
+Specifications and to continue extensions of the Extended
+Specifications. The IPTC does not waive any of its rights in the
+Specifications and Materials in this context. The Extended
+Specifications may be considered the intellectual property of their
+creator. The IPTC expressly disclaims any responsibility for damage
+caused by an extension to the Specifications.
 
-The IPTC reserves the right to terminate the use of the trademark by the
-Licensee at any time without notice or without the need to give reasons to the
-Licensee for such termination.
+12. Specifications and Materials may be included in derivative work of
+both members and non-members provided that there is a clear
+recognition of the IPTC IP and its ownership in the derivative work
+and its related documentation. The IPTC does not waive any of its
+rights in the Specifications and Materials in this context. Derivative
+work in its entirety may be considered the intellectual property of
+the creator of the work .The IPTC expressly disclaims any
+responsibility for damage caused when its IP is used in a derivative
+context.
 
-This contract shall be governed and construed in accordance with the laws of
-England and Wales whose courts shall be courts of competent jurisdiction.
+13. This Specifications License Agreement is perpetual subject to your
+conformance to the terms of this Agreement. The IPTC may terminate
+this Specifications License Agreement immediately upon your breach of
+this Agreement and, upon such termination you will cease all use,
+duplication, distribution, and/or exploitation in any manner of the
+Specifications and Materials.
+
+14. This Specifications License Agreement reflects the entire
+agreement of the parties regarding the subject matter hereof and
+supersedes all prior agreements or representations regarding such
+matters, whether written or oral. To the extent any portion or
+provision of this Specifications License Agreement is found to be
+illegal or unenforceable, then the remaining provisions of this
+Specifications License Agreement will remain in full force and effect
+and the illegal or unenforceable provision will be construed to give
+it such effect as it may properly have that is consistent with the
+intentions of the parties.
+
+15. This Specifications License Agreement may only be modified in
+writing signed by an authorized representative of the IPTC.
+
+16. This Specifications License Agreement is governed by the law of
+United Kingdom, as such law is applied to contracts made and fully
+performed in the United Kingdom. Any disputes arising from or relating
+to this Specifications License Agreement will be resolved in the
+courts of the United Kingdom. You consent to the jurisdiction of such
+courts over you and covenant not to assert before such courts any
+objection to proceeding in such forums.
+
+IF YOU DO NOT AGREE TO THESE TERMS YOU MUST CEASE ALL USE OF THE
+SPECIFICATIONS AND MATERIALS NOW. IF YOU HAVE ANY QUESTIONS ABOUT
+THESE TERMS, PLEASE CONTACT THE MANAGING DIRECTOR OF THE INTERNATIONAL
+PRESS TELECOMMUNICATION COUNCIL. AS OF THE DATE OF THIS REVISION OF
+THIS SPECIFICATIONS LICENSE AGREEMENT YOU MAY CONTACT THE IPTC at
+http://www.iptc.org.
+
+License agreement version of: 30 January 2006
 -->
 <!-- 
                                 ================
@@ -121,12 +228,13 @@ The date and (optionally) time at which a piece of metadata was assigned.
 Uses the format CCYYMMDDTHHMMSS{+or-}HHMM (century, year, month, day, time
 separator, hours, minutes, seconds, timezone separator, hours, minutes). If
 only the Date is needed, then the substring from T onwards may be omitted.
+Where the offset difference is +0000 the letter suffix "Z" may alternatively be used.
 
 This is the Basic Format defined by ISO 8601. CCYY is a 4-digit year number.
 MM is a 2-digit month number. DD is a 2-digit day number. T is the letter 'T'.
 HH is a 2-digit hour number (using a 24-hour clock). MM is a 2 digit minute
-number. (Note that midnight may be represented as 2400 or 240000 on the date
-of the day that is ending, or as 0000 or 000000 on the date of the day that is
+number. (Note that midnight may be represented as 240000 on the date
+of the day that is ending, or as 000000 on the date of the day that is
 beginning.)
 
 {+or-} is the '+' character or the '-' character, and the following HHMM are
@@ -136,33 +244,35 @@ may be '+0000' or '-0000'. If the time is behind UTC, the timezone separator
 is '-'. If the time is ahead of UTC the timezone separator is '+'.
 
 Example: 10:27 p.m. in New York on 31 December 2000 would be expressed as 
-"20001231T222700-0500" as New York is five hours behind UTC in winter.
-At the same moment in London, the date and time would be expressed as 
-time would be expressed as "20010101T032700+0000" or as , "20010101T00+0000", as
-in London, it is now 3:27 a.m.  on 1 January 2001. At the same moment in Paris,
-the date and time would be expressed as "20010101T042700+0100", as Paris is one
-hour ahead of UTC in winter, and it is now 4:27 a.m. on 1 January 2001.
+"20001231T222700-0500" as New York is five hours behind UTC in winter. At
+the  same moment in London, the date and time would be expressed as
+"20010101T032700+0000" or as "20010101T032700-0000" because in London it is
+now 3:27 a.m. on 1 January 2001. At the same moment in Paris,the date and
+time would be expressed as "20010101T042700+0100", because Paris is one hour
+ahead of UTC  in winter and it is now 4:27 a.m. on 1 January 2001.
 ================================================================================
 
 -->
 <!ENTITY % assignment " AssignedBy  CDATA  #IMPLIED
-                     Importance  CDATA  #IMPLIED
-                     Confidence  CDATA  #IMPLIED
-                     HowPresent  CDATA  #IMPLIED
-                     DateAndTime CDATA  #IMPLIED">
-
+   Importance  CDATA  #IMPLIED
+   Confidence  CDATA  #IMPLIED
+   HowPresent  CDATA  #IMPLIED
+   DateAndTime CDATA  #IMPLIED">
 <!-- 
 ================================= formalname ===================================
 
 FormalName
 ==========
 A string of characters whose meaning is determined by a controlled vocabulary.
+The controlled vocabulary may (but is not required to) take the form of a NewsML TopicSet.
 
 Vocabulary
 ==========
 The Vocabulary attribute, if present, provides a pointer to a TopicSet which is
 the controlled vocabulary that can be used to resolve the meaning of the
-FormalName. The value of the Vocabulary attribute is an http URL or a NewsML
+FormalName. 
+
+The value of the Vocabulary attribute is an http URL or a NewsML
 URN, or the # character followed by the value of the Duid attribute of the a
 TopicSet in the current document.
 
@@ -179,30 +289,22 @@ is located by the following algorithm:
   available because the root element has been reached and it too fails to meet
   the condition.
 
-If there is no Vocabulary attribute and the above algorithm fails to identify
-a resource that serves as the controlled vocabulary, there is an error, which
-the NewsML system may signal to the user.
-
-The NewsML system may also signal an error if a vocabulary is successfully
-identified, but it contains no item that matches the value of the FormalName
-whose meaning is sought.
+(The comment on Vocabulary was changed for Version 1.2)
 
 Scheme
 ======
 The Scheme attribute, if present, serves to distinguish which of possibly
 multiple naming schemes in the controlled vocabulary is the one that governs
-this FormalName. For a match to be obtained within the controlled vocabulary,
-the rule is that the FormalName and the Scheme must both match. If there is
-no Scheme attribute on the current element, the match will be to an item in
-the vocabulary that has the current formal name and no scheme. If there is a
-Scheme attribute on the current element, then both the formal name and the
-scheme in the controlled vocabulary must match.
+this FormalName. 
+
+(The following lines added for Version 1.2)
+More information about the processing of those attributes can be found in the 
+NewsML Functional Specifications and the NewsML Implementation Guidelines.
 ================================================================================
 -->
 <!ENTITY % formalname " FormalName CDATA  #REQUIRED
-                     Vocabulary CDATA  #IMPLIED
-                     Scheme     CDATA  #IMPLIED">
-
+   Vocabulary CDATA  #IMPLIED
+   Scheme     CDATA  #IMPLIED">
 <!-- 
 =================================== localid ====================================
 
@@ -236,8 +338,7 @@ grafting" of subtrees.
 ================================================================================
 -->
 <!ENTITY % localid " Duid ID     #IMPLIED
-                     Euid CDATA  #IMPLIED">
-
+   Euid CDATA  #IMPLIED">
 <!-- 
 ================================================================================
                                  Content Models 
@@ -247,13 +348,10 @@ grafting" of subtrees.
 ===================================== data =====================================
 Where data is included, it may be directly in the form of a DataContent element,
 or in the form of DataContent wrapped in an Encoding element, or by reference
-through an Href attribute, in which case neither a DataContent nor an Encoding
-element will be present.
+through an Href attribute. In the latter case an empty Encoding element may be present.
 ================================================================================
 -->
-<!ENTITY % data " (Encoding
-                 | DataContent )?">
-
+<!ENTITY % data "(Encoding | DataContent)?">
 <!-- 
 ==================================== party =====================================
 Person, organisation or company playing a specific role in the
@@ -262,9 +360,7 @@ information about it can be provided in the optional Comment subelements.
 ================================================================================
 
 -->
-<!ENTITY % party " (Comment*
-                  , Party+ )">
-
+<!ENTITY % party "Comment* , Party+">
 <!-- 
                            =========================
                            ELEMENT TYPE DECLARATIONS 
@@ -273,10 +369,13 @@ information about it can be provided in the optional Comment subelements.
 <!-- 
 ============================ AdministrativeMetadata ============================
 Information about the provenance of a NewsComponent. 
+Changed for Version 1.2: Creator? changed to Creator*
 ================================================================================
 -->
-<!ELEMENT AdministrativeMetadata  (Catalog? , FileName? , SystemIdentifier? , Provider? , Creator? , Source* 
, Contributor* , Property* )>
-<!ATTLIST AdministrativeMetadata  %localid; >
+<!ELEMENT AdministrativeMetadata (Catalog?, FileName?, SystemIdentifier?, Provider?, Creator*, Source*, 
Contributor*, Property*)>
+<!ATTLIST AdministrativeMetadata
+       %localid; 
+>
 <!-- 
 
 ================================ AssociatedWith ================================
@@ -284,36 +383,62 @@ A reference to a NewsItem with which this one is associated (for example, a
 series of articles, or a collection of photos, of which it is a part). The 
 NewsItem attribute identifies the relevant NewsItem. Its value can be an
 http URL or a NewsML URN as described in the comment to PublicIdentifier. The
-Comment can be used to indicate the nature of the association.
+Comment can be used to indicate the nature of the association. FormalName structure added in version 1.1
 ================================================================================
 
 -->
-<!ELEMENT AssociatedWith  (Comment* )>
-<!ATTLIST AssociatedWith  %localid;
-                          NewsItem CDATA  #IMPLIED >
+<!ELEMENT AssociatedWith (Comment*)>
+<!ATTLIST AssociatedWith
+       %localid; 
+       FormalName CDATA #IMPLIED
+       Vocabulary CDATA #IMPLIED
+       Scheme CDATA #IMPLIED
+       NewsItem CDATA #IMPLIED
+>
 <!-- 
 ================================ BasisForChoice ================================
 The content of this element is an XPath statement or element-type name
 identifying information within each NewsComponent or ContentItem that can be
 used as a basis for choice between equivalent NewsComponents or ContentItems.
-The root of the XPath corresponds to the NewsComponent or ContentItem itself.
-The optional Rank attribute allows providers to place a numerical order on the
-importance they think should be attached to the different bases for choice.
+If the XPath pattern begins with a . character, this represents the 'root' of
+the XPath and corresponds to the NewsComponent or ContentItem itself. By
+applying the XPath pattern to each NewsComponent or ContentItem in turn within
+the set of equivalents, the system can extract the data on the basis of which a
+choice between the items can be made. If multiple matches to the XPath pattern
+are present within the subtree that begins at the 'root', only the first match
+found in document order is significant.  The optional Rank attribute allows
+providers to place a numerical order on the  importance they think should be
+attached to the different bases for choice.
 Smaller numbers represent higher importance.
 ================================================================================
 -->
-<!ELEMENT BasisForChoice  (#PCDATA )>
-<!ATTLIST BasisForChoice  %localid;
-                          Rank    CDATA  #IMPLIED >
+<!ELEMENT BasisForChoice (#PCDATA)>
+<!ATTLIST BasisForChoice
+       %localid; 
+       Rank CDATA #IMPLIED
+>
 <!-- 
 
 ==================================== ByLine ====================================
 A natural-language statement of the author/creator information.
 ================================================================================
 -->
-<!ELEMENT ByLine  (#PCDATA | Origin )*>
-<!ATTLIST ByLine  %localid;
-                  xml:lang CDATA  #IMPLIED >
+<!ELEMENT ByLine (#PCDATA | Origin)*>
+<!ATTLIST ByLine
+       %localid; 
+       xml:lang CDATA #IMPLIED
+>
+<!-- 
+
+==================================== ByLineTitle ====================================
+A natural-language statement of the title of author/creator of the information. (version 1.1)
+================================================================================
+-->
+<!ELEMENT ByLineTitle (#PCDATA | Origin)*>
+<!ATTLIST ByLineTitle
+       %localid; 
+       xml:lang CDATA #IMPLIED
+>
 <!-- 
 =================================== Catalog ====================================
 A container for Resource and TopicUse elements. Resource elements map URNs to
@@ -330,99 +455,139 @@ element, then that element should be empty. If it contains subelements, the
 NewsML system may signal an error.
 ================================================================================
 -->
-<!ELEMENT Catalog  (Resource* , TopicUse* )>
-<!ATTLIST Catalog  %localid;
-                   Href    CDATA  #IMPLIED >
+<!ELEMENT Catalog (Resource*, TopicUse*)>
+<!ATTLIST Catalog
+       %localid; 
+       Href CDATA #IMPLIED
+>
 <!-- 
 =============================== Characteristics ================================
 Information about the physical characteristics of a ContentItem.
 ================================================================================
 -->
-<!ELEMENT Characteristics  (SizeInBytes? , Property* )>
-<!ATTLIST Characteristics  %localid; >
+<!ELEMENT Characteristics (SizeInBytes?, Property*)>
+<!ATTLIST Characteristics
+       %localid; 
+>
 <!-- 
 =================================== Comment ====================================
 A natural-language description of, or statement about, the current element. The
 optional TranslationOf attribute is a pointer to another Comment element, of
-which this one is a direct translation.
+which this one is a direct translation. The FormalName and associated attributes added for Version 1.1
 ================================================================================
 -->
-<!ELEMENT Comment  (#PCDATA )>
-<!ATTLIST Comment  %localid;
-                   xml:lang      CDATA  #IMPLIED
-                   TranslationOf IDREF  #IMPLIED >
+<!ELEMENT Comment (#PCDATA)>
+<!ATTLIST Comment
+       %localid; 
+       xml:lang CDATA #IMPLIED
+       TranslationOf IDREF #IMPLIED
+       FormalName CDATA #IMPLIED
+       Vocabulary CDATA #IMPLIED
+       Scheme CDATA #IMPLIED
+>
 <!-- 
 ================================= ContentItem ==================================
 A news object that carries or identifies content intended for presentation to
 humans.
 ================================================================================
 -->
-<!ELEMENT ContentItem  (Comment* , Catalog? , MediaType? , Format? , MimeType? , Notation? , 
Characteristics? , %data; )>
-<!ATTLIST ContentItem  %localid;
-                       Href    CDATA  #IMPLIED >
+<!ELEMENT ContentItem (Comment*, Catalog?, MediaType?, Format?, MimeType?, Notation?, Characteristics?, 
%data;)>
+<!ATTLIST ContentItem
+       %localid; 
+       Href CDATA #IMPLIED
+>
+<!-- 
+================================= Contribution ==================================
+The contribution of a Party in the scope of the creation or the modification of a news object.
+Added for Version 1.2
+==============================================================================
+-->
+<!ELEMENT Contribution EMPTY>
+<!ATTLIST Contribution
+       %localid; 
+       %formalname; 
+>
 <!-- 
 ================================= Contributor ==================================
 An individual and/or company or organisation that modified or enhanced a news
 object after its creation.
+Changed for Version 1.2: Contribution added
 ================================================================================
 -->
-<!ELEMENT Contributor  (%party; )>
-<!ATTLIST Contributor  %localid; >
+<!ELEMENT Contributor (%party;, Contribution*)>
+<!ATTLIST Contributor
+       %localid; 
+>
 <!-- 
 ================================== Copyright ===================================
 The copyright that pertains to a news object.
 ================================================================================
 -->
-<!ELEMENT Copyright  (Comment* , CopyrightHolder , CopyrightDate )>
-<!ATTLIST Copyright  %localid;
-                     %assignment; >
+<!ELEMENT Copyright (Comment*, CopyrightHolder, CopyrightDate)>
+<!ATTLIST Copyright
+       %localid; 
+       %assignment; 
+>
 <!-- 
 ================================ CopyrightDate =================================
 A natural-language statement of the copyright date.
 ================================================================================
 
 -->
-<!ELEMENT CopyrightDate  (#PCDATA | Origin )*>
-<!ATTLIST CopyrightDate  %localid;
-                         xml:lang CDATA  #IMPLIED >
+<!ELEMENT CopyrightDate (#PCDATA | Origin)*>
+<!ATTLIST CopyrightDate
+       %localid; 
+       xml:lang CDATA #IMPLIED
+>
 <!-- 
 =============================== CopyrightHolder ================================
 A natural-language statement indicating who owns the copyright.
 ================================================================================
 -->
-<!ELEMENT CopyrightHolder  (#PCDATA | Origin )*>
-<!ATTLIST CopyrightHolder  %localid;
-                           xml:lang CDATA  #IMPLIED >
+<!ELEMENT CopyrightHolder (#PCDATA | Origin)*>
+<!ATTLIST CopyrightHolder
+       %localid; 
+       xml:lang CDATA #IMPLIED
+>
 <!-- 
 ================================ CopyrightLine =================================
 A natural-language statement of the copyright information.
 ================================================================================
 -->
-<!ELEMENT CopyrightLine  (#PCDATA | Origin )*>
-<!ATTLIST CopyrightLine  %localid;
-                         xml:lang CDATA  #IMPLIED >
+<!ELEMENT CopyrightLine (#PCDATA | Origin)*>
+<!ATTLIST CopyrightLine
+       %localid; 
+       xml:lang CDATA #IMPLIED
+>
 <!-- 
 =================================== Creator ====================================
 An individual and/or company or organisation that created a news object.
+Changed for Version 1.2: Contribution added
 ================================================================================
 -->
-<!ELEMENT Creator  (%party; )>
-<!ATTLIST Creator  %localid; >
+<!ELEMENT Creator (%party;, Contribution*)>
+<!ATTLIST Creator
+       %localid; 
+>
 <!-- 
 ================================== CreditLine ==================================
 A natural-language statement of credit information.
 ================================================================================
 -->
-<!ELEMENT CreditLine  (#PCDATA | Origin )*>
-<!ATTLIST CreditLine  %localid;
-                      xml:lang CDATA  #IMPLIED >
+<!ELEMENT CreditLine (#PCDATA | Origin)*>
+<!ATTLIST CreditLine
+       %localid; 
+       xml:lang CDATA #IMPLIED
+>
 <!-- 
 ================================= DataContent ==================================
 The data that carries the content of a ContentItem.
 ================================================================================
 -->
 <!ELEMENT DataContent ANY>
-<!ATTLIST DataContent  %localid; >
+<!ATTLIST DataContent
+       %localid; 
+>
 <!-- 
 ================================= DateAndTime ==================================
 A formal representation of a date and, optionally, time, expressed in ISO 8601
@@ -430,8 +595,10 @@ Basic Format, as described in the comment to the DateAndTime attribute within
 the assignment ENTITY declaration above.
 ================================================================================
 -->
-<!ELEMENT DateAndTime  (#PCDATA )>
-<!ATTLIST DateAndTime  %localid; >
+<!ELEMENT DateAndTime (#PCDATA)>
+<!ATTLIST DateAndTime
+       %localid; 
+>
 <!-- 
 ==================================== DateId ====================================
 A date identifier of a NewsItem in short ISO 8601 Basic Format (CCYYMMDD), as
@@ -441,72 +608,60 @@ NewsItem, and must remain the same through successive revisions of the same
 NewsItem.
 ================================================================================
 -->
-<!ELEMENT DateId  (#PCDATA )>
-
+<!ELEMENT DateId (#PCDATA)>
 <!-- 
 ================================== DateLabel ===================================
 A string representation of a date or date and time, used by human users to help
 identify a NewsItem.
 ================================================================================
 -->
-<!ELEMENT DateLabel  (#PCDATA )>
-<!ATTLIST DateLabel  %localid; >
+<!ELEMENT DateLabel (#PCDATA)>
+<!ATTLIST DateLabel
+       %localid; 
+>
 <!--
 =================================== DateLine ===================================
 A natural-language statement of the date and/or place of creation.
 ================================================================================
 -->
-<!ELEMENT DateLine  (#PCDATA | Origin )*>
-<!ATTLIST DateLine  %localid;
-                    xml:lang CDATA  #IMPLIED >
+<!ELEMENT DateLine (#PCDATA | Origin)*>
+<!ATTLIST DateLine
+       %localid; 
+       xml:lang CDATA #IMPLIED
+>
+<!--
+=================================== DateLineDate ===================================
+A logical equivalent of the date of creation. ISO8601 Basic Format
+================================================================================
+-->
+<!ELEMENT DateLineDate (#PCDATA)>
+<!ATTLIST DateLineDate
+       %localid; 
+>
 <!-- 
 ============================ DefaultVocabularyFor ==============================
 An indication that the parent Resource provides the default vocabulary that
 determines the meanings and permitted values of the data occurring in a
 particular part of a NewsML document subtree. The Context attribute is an
-XPath statement identifying the data to which the default vocabulary applies.
-The optional Scheme attribute identifies the relevant naming scheme if the
-Resource contains more than one naming scheme. If the Resource is a NewsML
-TopicSet, then the meaning of the data identified by the Context is provided
-by the Topic whose FormalName subelement matches that data. If the Resource is
-not a NewsML TopicSet, then the way in which it is interpreted in order to
-provide a meaning for the data is not defined by NewsML but by the authority
-that governs whatever format the Resource uses.
-
-Example:
-<DescriptiveMetadata>
- <Catalog>
-  <Resource Duid="resource1">
-   <Urn>urn:newsml:iptc.org:20001006:Ranking:1</Urn>
-   <Url>www.iptc.com/vocabularies/iptc-rank.xml</Url>
-   <DefaultVocabularyFor Context="@Confidence"/>
-   <DefaultVocabularyFor Context="@Importance"/>
-  </Resource>
-  <Resource Duid="resource2">
-   <Urn>urn:newsml:iptc.org:20001006:TopicTypes:1</Urn>
-   <Url>www.iptc.com/vocabularies/iptc-topictype.xml</Url>
-   <DefaultVocabularyFor Context="TopicType@FormalName"/>
-  </Resource>
- </Catalog>
- <TopicSet>
-  <Topic Duid="topic1">
-   <TopicType FormalName="Person">
-   <Description Variant="Name">Bill Clinton</Description>
-   <Description Variant="Position">President of the USA</Description>
-  </Topic>
- </TopicSet>
- <TopicOccurrence
-  AssignedBy="Desk Editor"
-  Confidence="High"
-  HowPresent="principal subject"
-  Topic="#topic1"/>
-</DescriptiveMetadata>
+XPath pattern identifying the data to which the default vocabulary applies.
+If the XPath pattern is one that matches elements, then it is the value of the
+FormalName attribute of that element that is designated. If the XPath pattern
+is one that matches attributes, then it is the value of that attribute itself
+that is designated. The optional Scheme attribute identifies the relevant naming
+scheme if the controlled vocabulary contains more than one naming scheme. 
+If the controlled vocabulary is a NewsML TopicSet, then the meaning of the data 
+identified by the Context is provided by the Topic whose FormalName subelement 
+matches that data. If the Resource is not a NewsML TopicSet, then the way in which
+it is interpreted in order to provide a meaning for the data is not defined by NewsML 
+but by the authority that governs whatever format the Resource uses.
 ================================================================================
 -->
 <!ELEMENT DefaultVocabularyFor EMPTY>
-<!ATTLIST DefaultVocabularyFor  %localid;
-                                Context CDATA  #REQUIRED
-                                Scheme  CDATA  #IMPLIED >
+<!ATTLIST DefaultVocabularyFor
+       %localid; 
+       Context CDATA #REQUIRED
+       Scheme CDATA #IMPLIED
+>
 <!--
 ==================================== Delete ====================================
 An instruction to delete an element within a NewsItem. The NewsItem is
@@ -516,18 +671,25 @@ attribute.
 ================================================================================
 -->
 <!ELEMENT Delete EMPTY>
-<!ATTLIST Delete  %localid;
-                  DuidRef CDATA  #REQUIRED >
+<!ATTLIST Delete
+       %localid; 
+       DuidRef CDATA #REQUIRED
+>
 <!-- 
 ================================= DerivedFrom ==================================
 A reference to an NewsItem from which this one is derived. The NewsItem attribute
 identifies the relevant NewsItem. Its value can be an http URL or a NewsML URN
-as described in the comment to PublicIdentifier.
+as described in the comment to PublicIdentifier. FormalName structure added in version 1.1
 ================================================================================
 -->
-<!ELEMENT DerivedFrom  (Comment* )>
-<!ATTLIST DerivedFrom  %localid;
-                       NewsItem CDATA  #IMPLIED >
+<!ELEMENT DerivedFrom (Comment*)>
+<!ATTLIST DerivedFrom
+       %localid; 
+       FormalName CDATA #IMPLIED
+       Vocabulary CDATA #IMPLIED
+       Scheme CDATA #IMPLIED
+       NewsItem CDATA #IMPLIED
+>
 <!-- 
 ================================= Description ==================================
 A description that identifies a Topic, thereby indicating the meaning of a
@@ -537,43 +699,54 @@ descriptions to be given in the same language, and meaningfully distinguished
 from one another.
 ================================================================================
 -->
-<!ELEMENT Description  (#PCDATA )>
-<!ATTLIST Description  %localid;
-                       xml:lang CDATA  #IMPLIED
-                       Variant  CDATA  #IMPLIED >
+<!ELEMENT Description (#PCDATA)>
+<!ATTLIST Description
+       %localid; 
+       xml:lang CDATA #IMPLIED
+       Variant CDATA #IMPLIED
+>
 <!-- 
 ============================= DescriptiveMetadata ==============================
-Information describing the content of a NewsComponent. 
+Information describing the content of a NewsComponent. Multiple appearance for the child element Genre,
+new elements DateLineDate and Location were introduced in  version 1.1 of the DTD.
 ================================================================================
 -->
-<!ELEMENT DescriptiveMetadata  (Catalog? , Language* , Genre? , SubjectCode* , OfInterestTo* , 
TopicOccurrence* , Property* )>
-<!ATTLIST DescriptiveMetadata  %localid;
-                               %assignment; >
+<!ELEMENT DescriptiveMetadata (Catalog?, Language*, Genre*, SubjectCode*, OfInterestTo*, DateLineDate?, 
Location*, TopicOccurrence*, Property*)>
+<!ATTLIST DescriptiveMetadata
+       %localid; 
+       %assignment; 
+>
 <!-- 
 =================================== Encoding ===================================
 The encoding of the data comprising the content of a ContentItem. 
 ================================================================================
 -->
 <!ELEMENT Encoding %data;>
-<!ATTLIST Encoding  %localid;
-                    Notation CDATA  #REQUIRED >
+<!ATTLIST Encoding
+       %localid; 
+       Notation CDATA #REQUIRED
+>
 <!-- 
 =================================== EndDate ====================================
 A natural-language statement of the date at which specified usage rights come
 to an end.
 ================================================================================
 -->
-<!ELEMENT EndDate  (#PCDATA | Origin )*>
-<!ATTLIST EndDate  %localid;
-                   xml:lang   CDATA  #IMPLIED
-                   %assignment; >
+<!ELEMENT EndDate (#PCDATA | Origin)*>
+<!ATTLIST EndDate
+       %localid; 
+       xml:lang CDATA #IMPLIED
+       %assignment; 
+>
 <!-- 
 =================================== FileName ===================================
 The suggested or actual storage file name for a NewsItem. 
 ================================================================================
 -->
-<!ELEMENT FileName  (#PCDATA )>
-<!ATTLIST FileName  %localid; >
+<!ELEMENT FileName (#PCDATA)>
+<!ATTLIST FileName
+       %localid; 
+>
 <!-- 
 ================================= FirstCreated =================================
 The date and, optionally, time at which a NewsItem was first created, expressed
@@ -581,8 +754,10 @@ in ISO 8601 Basic Format, as described in the comment to the DateAndTime
 attribute within the assignment ENTITY declaration above.
 ================================================================================
 -->
-<!ELEMENT FirstCreated  (#PCDATA )>
-<!ATTLIST FirstCreated  %localid; >
+<!ELEMENT FirstCreated (#PCDATA)>
+<!ATTLIST FirstCreated
+       %localid; 
+>
 <!-- 
 ================================= FormalName ===================================
 A string of characters whose meaning is determined by a naming scheme within a
@@ -592,9 +767,11 @@ which naming scheme applies, when several exist within the same controlled
 vocabulary.
 ================================================================================
 -->
-<!ELEMENT FormalName  (#PCDATA )>
-<!ATTLIST FormalName  %localid;
-                      Scheme  CDATA  #IMPLIED >
+<!ELEMENT FormalName (#PCDATA)>
+<!ATTLIST FormalName
+       %localid; 
+       Scheme CDATA #IMPLIED
+>
 <!-- 
 ==================================== Format ====================================
 An indication of the format of a ContentItem. The value of the FormalName
@@ -604,8 +781,10 @@ formalname ENTITY declaration above.
 ================================================================================
 -->
 <!ELEMENT Format EMPTY>
-<!ATTLIST Format  %localid;
-                  %formalname; >
+<!ATTLIST Format
+       %localid; 
+       %formalname; 
+>
 <!-- 
 ================================= FutureStatus =================================
 An indication of the status a NewsItem will have at a specified future date. The
@@ -615,8 +794,10 @@ to the formalname ENTITY declaration above.
 ================================================================================
 -->
 <!ELEMENT FutureStatus EMPTY>
-<!ATTLIST FutureStatus  %localid;
-                        %formalname; >
+<!ATTLIST FutureStatus
+       %localid; 
+       %formalname; 
+>
 <!-- 
 ==================================== Genre =====================================
 An indication of the Genre of a NewsComponent. The value of the FormalName
@@ -626,34 +807,42 @@ formalname ENTITY declaration above.
 ================================================================================
 -->
 <!ELEMENT Genre EMPTY>
-<!ATTLIST Genre  %localid;
-                 %formalname;
-                 %assignment; >
+<!ATTLIST Genre
+       %localid; 
+       %formalname; 
+       %assignment; 
+>
 <!-- 
 ================================== Geography ===================================
 A natural-language statement of the geographical area or areas to which
 specified usage rights apply.
 ================================================================================
 -->
-<!ELEMENT Geography  (#PCDATA | Origin )*>
-<!ATTLIST Geography  %localid;
-                     xml:lang   CDATA  #IMPLIED
-                     %assignment; >
+<!ELEMENT Geography (#PCDATA | Origin)*>
+<!ATTLIST Geography
+       %localid; 
+       xml:lang CDATA #IMPLIED
+       %assignment; 
+>
 <!-- 
 =================================== HeadLine ===================================
 A displayable headline.
 ================================================================================
 -->
-<!ELEMENT HeadLine  (#PCDATA | Origin )*>
-<!ATTLIST HeadLine  %localid;
-                    xml:lang CDATA  #IMPLIED >
+<!ELEMENT HeadLine (#PCDATA | Origin)*>
+<!ATTLIST HeadLine
+       %localid; 
+       xml:lang CDATA #IMPLIED
+>
 <!-- 
 ================================ Identification ================================
 Identification information for the NewsItem.
 ================================================================================
 -->
-<!ELEMENT Identification  (NewsIdentifier , NameLabel? , DateLabel? , Label* )>
-<!ATTLIST Identification  %localid; >
+<!ELEMENT Identification (NewsIdentifier, NameLabel?, DateLabel?, Label*)>
+<!ATTLIST Identification
+       %localid; 
+>
 <!--
 ================================= InsertAfter ==================================
 An instruction to insert content after a designated element within a NewsItem.
@@ -664,8 +853,10 @@ value is equal to the value of the InsertAfter element's DuidRef attribute.
 ================================================================================
 -->
 <!ELEMENT InsertAfter ANY>
-<!ATTLIST InsertAfter  %localid;
-                       DuidRef CDATA  #REQUIRED >
+<!ATTLIST InsertAfter
+       %localid; 
+       DuidRef CDATA #REQUIRED
+>
 <!--
 ================================= InsertBefore =================================
 An instruction to insert content before a designated element within a NewsItem.
@@ -676,8 +867,10 @@ value is equal to the value of the InsertBefore element's DuidRef attribute.
 ================================================================================
 -->
 <!ELEMENT InsertBefore ANY>
-<!ATTLIST InsertBefore  %localid;
-                        DuidRef CDATA  #REQUIRED >
+<!ATTLIST InsertBefore
+       %localid; 
+       DuidRef CDATA #REQUIRED
+>
 <!--
 ================================= Instruction ==================================
 An instruction from a news provider to the recipient of a NewsItem. A special
@@ -690,32 +883,40 @@ vocabulary as described in the comment to the formalname ENTITY declaration
 above.
 ================================================================================
 -->
-<!ELEMENT Instruction  (RevisionStatus* )>
-<!ATTLIST Instruction  %localid;
-                       %formalname; >
+<!ELEMENT Instruction (RevisionStatus*)>
+<!ATTLIST Instruction
+       %localid; 
+       %formalname; 
+>
 <!-- 
 ================================= KeywordLine ==================================
 A displayable set of keywords relevant to a news object. This can be used by a
 NewsML system to assist manual or automated searches.
 ================================================================================
 -->
-<!ELEMENT KeywordLine  (#PCDATA | Origin )*>
-<!ATTLIST KeywordLine  %localid;
-                       xml:lang CDATA  #IMPLIED >
+<!ELEMENT KeywordLine (#PCDATA | Origin)*>
+<!ATTLIST KeywordLine
+       %localid; 
+       xml:lang CDATA #IMPLIED
+>
 <!-- 
 ==================================== Label =====================================
 A human-readable label for a NewsItem.
 ================================================================================
 -->
-<!ELEMENT Label  (LabelType , LabelText )>
-<!ATTLIST Label  %localid; >
+<!ELEMENT Label (LabelType, LabelText)>
+<!ATTLIST Label
+       %localid; 
+>
 <!-- 
 =================================== LabelText ==================================
 The text that constitutes a Label of a given LabelType.
 ================================================================================
 -->
-<!ELEMENT LabelText  (#PCDATA )>
-<!ATTLIST LabelText  %localid; >
+<!ELEMENT LabelText (#PCDATA)>
+<!ATTLIST LabelText
+       %localid; 
+>
 <!-- 
 ================================= LabelType ====================================
 A user-defined type of label. The value of the FormalName attribute is a formal
@@ -725,8 +926,10 @@ declaration above.
 ================================================================================
 -->
 <!ELEMENT LabelType EMPTY>
-<!ATTLIST LabelType  %localid;
-                     %formalname; >
+<!ATTLIST LabelType
+       %localid; 
+       %formalname; 
+>
 <!-- 
 =================================== Language ===================================
 An indication of the, or a, language used in a content item. The value of the
@@ -736,19 +939,42 @@ comment to the formalname ENTITY declaration above.
 ================================================================================
 -->
 <!ELEMENT Language EMPTY>
-<!ATTLIST Language  %localid;
-                    %formalname;
-                    %assignment; >
+<!ATTLIST Language
+       %localid; 
+       %formalname; 
+       %assignment; 
+>
 <!-- 
 ================================= Limitations ==================================
 A natural-language statement of the terms and conditions that apply to the
 specified usage rights.
 ================================================================================
 -->
-<!ELEMENT Limitations  (#PCDATA | Origin )*>
-<!ATTLIST Limitations  %localid;
-                       xml:lang   CDATA  #IMPLIED
-                       %assignment; >
+<!ELEMENT Limitations (#PCDATA | Origin)*>
+<!ATTLIST Limitations
+       %localid; 
+       xml:lang CDATA #IMPLIED
+       %assignment; 
+>
+<!-- 
+=========================== Location (version 1.1)=============================
+An indication of the location somehow relevant to the NewsItem. Type of the
+location (the nature of its relation to the NewsItem) is specified using the
+HowPresent attribute that is part of the %assignment; entity (e.g.
+DateLine, Event, etc). Logical components of the location's definition (eg Country) are specified 
+using the Property child elements with the FormalName attributes taken from the IPTC normative controlled 
+vocabulary. In addition, if the location in question exists as a single Topic, the optional Topic attribute 
may be 
+used as a direct pointer to that Topic.   The pointer may take the form of an http URL or a NewsML
+ URN, or a # character followed by the  value of the Duid attribute of a Topic element in the current 
document
+================================================================================
+-->
+<!ELEMENT Location (Property)*>
+<!ATTLIST Location
+       %localid; 
+       %assignment; 
+       xml:lang CDATA #IMPLIED
+       Topic CDATA #IMPLIED
+>
 <!-- 
 ================================== MediaType ===================================
 An indication of the media type of a ContentItem. The value of the FormalName
@@ -758,15 +984,19 @@ formalname ENTITY declaration above.
 ================================================================================
 -->
 <!ELEMENT MediaType EMPTY>
-<!ATTLIST MediaType  %localid;
-                     %formalname; >
+<!ATTLIST MediaType
+       %localid; 
+       %formalname; 
+>
 <!-- 
 =================================== Metadata ===================================
 An container for a user-defined type of metadata.
 ================================================================================
 -->
-<!ELEMENT Metadata  (Catalog? , MetadataType , Property+ )>
-<!ATTLIST Metadata  %localid; >
+<!ELEMENT Metadata (Catalog?, MetadataType, Property+)>
+<!ATTLIST Metadata
+       %localid; 
+>
 <!-- 
 =============================== MetadataType ===================================
 An indication of the type of metadata that is represented by the Property
@@ -777,8 +1007,10 @@ formalname ENTITY declaration above.
 ================================================================================
 -->
 <!ELEMENT MetadataType EMPTY>
-<!ATTLIST MetadataType  %localid;
-                        %formalname; >
+<!ATTLIST MetadataType
+       %localid; 
+       %formalname; 
+>
 <!-- 
 =================================== MimeType ===================================
 An indication of the MIME-type of a ContentItem. The value of the FormalName
@@ -788,8 +1020,10 @@ formalname ENTITY declaration above.
 ================================================================================
 -->
 <!ELEMENT MimeType EMPTY>
-<!ATTLIST MimeType  %localid;
-                    %formalname; >
+<!ATTLIST MimeType
+       %localid; 
+       %formalname; 
+>
 <!-- 
 ================================== NameLabel ===================================
 A string used by human users as a name to help identify a NewsItem. Its form is
@@ -800,8 +1034,10 @@ the string within NameLabel beyond the fact that it can help to identify the
 NewsItem to humans.
 ================================================================================
 -->
-<!ELEMENT NameLabel  (#PCDATA )>
-<!ATTLIST NameLabel  %localid; >
+<!ELEMENT NameLabel (#PCDATA)>
+<!ATTLIST NameLabel
+       %localid; 
+>
 <!-- 
 ================================ NewsComponent =================================
 A container for news objects, used to identify the role of news objects in
@@ -813,26 +1049,29 @@ NewsItemRefs, NewsComponents or ContentItems contained within this one are
 equivalent to one another in content and/or meaning
 ================================================================================
 -->
-<!ELEMENT NewsComponent  (Comment* , Catalog? , TopicSet* , Role? , BasisForChoice* , NewsLines? , 
AdministrativeMetadata? , RightsMetadata? , DescriptiveMetadata? , Metadata* ,  ( (NewsItem | NewsItemRef )+ 
| NewsComponent+ | ContentItem+ )? )>
-<!ATTLIST NewsComponent  %localid;
-                         Essential        (yes | no )  'no'
-                         EquivalentsList  (yes | no )  'no'
-                         xml:lang        CDATA  #IMPLIED >
+<!ELEMENT NewsComponent (Comment*, Catalog?, TopicSet*, Role?, BasisForChoice*, NewsLines?, 
AdministrativeMetadata?, RightsMetadata?, DescriptiveMetadata?, Metadata*, ((NewsItem | NewsItemRef)+ | 
NewsComponent+ | ContentItem+)?)>
+<!ATTLIST NewsComponent
+       %localid; 
+       Essential (yes | no) "no"
+       EquivalentsList (yes | no) "no"
+       xml:lang CDATA #IMPLIED
+>
 <!-- 
 ================================= NewsEnvelope =================================
 Information about the transmission of one or more NewsItems as a NewsML
 document.
 ================================================================================
 -->
-<!ELEMENT NewsEnvelope  (TransmissionId? , SentFrom? , SentTo? , DateAndTime , NewsService* , NewsProduct* , 
Priority? )>
-<!ATTLIST NewsEnvelope  %localid; >
+<!ELEMENT NewsEnvelope (TransmissionId?, SentFrom?, SentTo?, DateAndTime, NewsService*, NewsProduct*, 
Priority?)>
+<!ATTLIST NewsEnvelope
+       %localid; 
+>
 <!-- 
 ================================ NewsIdentifier ================================
 A globally unique identifier for a NewsItem. 
 ================================================================================
 -->
-<!ELEMENT NewsIdentifier  (ProviderId , DateId , NewsItemId , RevisionId , PublicIdentifier )>
-
+<!ELEMENT NewsIdentifier (ProviderId, DateId, NewsItemId, RevisionId, PublicIdentifier)>
 <!-- 
 =================================== NewsItem ===================================
 A managed set of information representing a point of view, at a given time, on
@@ -842,9 +1081,11 @@ that modify aspects of a previous Revision of the same NewsItem, or a
 TopicSet.
 ================================================================================
 -->
-<!ELEMENT NewsItem  (Comment* , Catalog? , Identification , NewsManagement ,  (NewsComponent | Update+ | 
TopicSet )? )>
-<!ATTLIST NewsItem  %localid;
-                    xml:lang CDATA  #IMPLIED >
+<!ELEMENT NewsItem (Comment*, Catalog?, Identification, NewsManagement, (NewsComponent | Update+ | 
TopicSet)?)>
+<!ATTLIST NewsItem
+       %localid; 
+       xml:lang CDATA #IMPLIED
+>
 <!-- 
 ================================== NewsItemId ==================================
 An identifier for the NewsItem. The combination of NewsItemId and DateId must
@@ -853,16 +1094,18 @@ constraints, the NewsItemId can take any form the provider wishes. It may take
 the form of a name for the NewsItem that will be meaningful to humans, but this
 is not a requirement. The provider may optionally relate the values of
 NewsItemId to a controlled vocabulary, which is invoked by the Vocabulary
-attribute. The value ofthe Vocabulary attribute may be an http URL, a NewsML
+attribute. The value of the Vocabulary attribute may be an http URL, a NewsML
 URN, or the # character followed by the value of the Duid attribute of a
 TopicSet in the current document. The Scheme attribute, if present, serves to
 distinguish which of possibly multiple naming schemes in the controlled
 vocabulary is the one that governs the NewsItemId.
 ================================================================================
 -->
-<!ELEMENT NewsItemId  (#PCDATA )>
-<!ATTLIST NewsItemId  Vocabulary CDATA  #IMPLIED
-                      Scheme     CDATA  #IMPLIED >
+<!ELEMENT NewsItemId (#PCDATA)>
+<!ATTLIST NewsItemId
+       Vocabulary CDATA #IMPLIED
+       Scheme CDATA #IMPLIED
+>
 <!-- 
 ================================= NewsItemRef ==================================
 A pointer to a NewsItem that is deemed to replace the NewsItemRef element. The
@@ -872,9 +1115,11 @@ fragment identifier consisting of a # character followed by the Duid of a
 NewsItem in the current document.
 ================================================================================
 -->
-<!ELEMENT NewsItemRef  (Comment* )>
-<!ATTLIST NewsItemRef  %localid;
-                       NewsItem CDATA  #IMPLIED >
+<!ELEMENT NewsItemRef (Comment*)>
+<!ATTLIST NewsItemRef
+       %localid; 
+       NewsItem CDATA #IMPLIED
+>
 <!--
 ================================= NewsItemType =================================
 An indication of the type of a NewsItem. The value of the FormalName attribute
@@ -884,23 +1129,29 @@ formalname ENTITY declaration above.
 ================================================================================
 -->
 <!ELEMENT NewsItemType EMPTY>
-<!ATTLIST NewsItemType  %localid;
-                        %formalname; >
+<!ATTLIST NewsItemType
+       %localid; 
+       %formalname; 
+>
 <!-- 
 =================================== NewsLine ===================================
 A newsline of a type not included in the NewsML specification.
 ================================================================================
 -->
-<!ELEMENT NewsLine  (NewsLineType , NewsLineText+ )>
-<!ATTLIST NewsLine  %localid; >
+<!ELEMENT NewsLine (NewsLineType, NewsLineText+)>
+<!ATTLIST NewsLine
+       %localid; 
+>
 <!-- 
 =================================== NewsLineText ===================================
 The text of a NewsLine of user-defined type.
 ================================================================================
 -->
-<!ELEMENT NewsLineText  (#PCDATA | Origin )*>
-<!ATTLIST NewsLineText  %localid;
-                        xml:lang CDATA  #IMPLIED >
+<!ELEMENT NewsLineText (#PCDATA | Origin)*>
+<!ATTLIST NewsLineText
+       %localid; 
+       xml:lang CDATA #IMPLIED
+>
 <!-- 
 ================================ NewsLineType ==================================
 An indication of a user-defined NewsLine type. The value of the FormalName
@@ -910,30 +1161,42 @@ to the formalname ENTITY declaration above.
 ================================================================================
 -->
 <!ELEMENT NewsLineType EMPTY>
-<!ATTLIST NewsLineType  %localid;
-                        %formalname; >
+<!ATTLIST NewsLineType
+       %localid; 
+       %formalname; 
+>
 <!-- 
 ================================== NewsLines ===================================
-A container for all the NewsLines that a NewsComponent has.
+A container for all the NewsLines that a NewsComponent has. 
+Made an "or" group  and ByLineTitle added in version 1.1
 ================================================================================
 -->
-<!ELEMENT NewsLines  ( (HeadLine , SubHeadLine? )* , ByLine* , DateLine* , CreditLine* , CopyrightLine* , 
RightsLine* , SeriesLine* , SlugLine* , KeywordLine* , NewsLine* )>
-<!ATTLIST NewsLines  %localid; >
+<!ELEMENT NewsLines ((HeadLine, SubHeadLine*) | (ByLine, ByLineTitle*) | DateLine | CreditLine | 
CopyrightLine | RightsLine | SeriesLine | SlugLine | KeywordLine | NewsLine)*>
+<!ATTLIST NewsLines
+       %localid; 
+>
 <!-- 
 ================================ NewsManagement ================================
-Information relevant to the management of a NewsItem.
+Information relevant to the management of a NewsItem. Multiple StatusWillChange introduced in version 1.1
 ================================================================================
 -->
-<!ELEMENT NewsManagement  (NewsItemType , FirstCreated , ThisRevisionCreated , Status , StatusWillChange? , 
Urgency? , RevisionHistory? , DerivedFrom* , AssociatedWith* , Instruction* , Property* )>
-<!ATTLIST NewsManagement  %localid; >
+<!ELEMENT NewsManagement (NewsItemType, FirstCreated, ThisRevisionCreated, Status, StatusWillChange*, 
Urgency?, RevisionHistory?, DerivedFrom*, AssociatedWith*, Instruction*, Property*)>
+<!ATTLIST NewsManagement
+       %localid; 
+>
 <!-- 
 ==================================== NewsML ====================================
 A NewsML document, which must contain a NewsEnvelope and one or more NewsItems,
-and may include a Catalog element and a TopicSet element.
+and may include a Catalog element and a TopicSet element. The Version attribute, introduced in version 1.1,
+is used to signify the version of NewsML that the instance is validated against. 
+It should always be used if the version is above 1.0.
 ================================================================================
 -->
-<!ELEMENT NewsML  (Catalog? , TopicSet* ,  (NewsEnvelope , NewsItem+ ) )>
-<!ATTLIST NewsML  %localid; >
+<!ELEMENT NewsML (Catalog?, TopicSet*, (NewsEnvelope, NewsItem+))>
+<!ATTLIST NewsML
+       %localid; 
+       Version CDATA #IMPLIED
+>
 <!-- 
 ================================= NewsProduct ==================================
 An identifier for a product to which all the NewsItems in a NewsML document
@@ -944,8 +1207,10 @@ above.
 ================================================================================
 -->
 <!ELEMENT NewsProduct EMPTY>
-<!ATTLIST NewsProduct  %localid;
-                       %formalname; >
+<!ATTLIST NewsProduct
+       %localid; 
+       %formalname; 
+>
 <!-- 
 ================================= NewsService ==================================
 An identifier for a service to which all the NewsItems in a NewsML document
@@ -956,8 +1221,10 @@ above.
 ================================================================================
 -->
 <!ELEMENT NewsService EMPTY>
-<!ATTLIST NewsService  %localid;
-                       %formalname; >
+<!ATTLIST NewsService
+       %localid; 
+       %formalname; 
+>
 <!-- 
 =================================== Notation ===================================
 An indication of the notation of a ContentItem. The value of the FormalName
@@ -967,8 +1234,10 @@ formalname ENTITY declaration above.
 ================================================================================
 -->
 <!ELEMENT Notation EMPTY>
-<!ATTLIST Notation  %localid;
-                    %formalname; >
+<!ATTLIST Notation
+       %localid; 
+       %formalname; 
+>
 <!-- 
 ================================= OfInterestTo =================================
 An indication of the target audience of a NewsItem. The value of the FormalName
@@ -977,10 +1246,12 @@ values are determined by a controlled vocabulary as described in the comment to
 the formalname ENTITY declaration above.
 ================================================================================
 -->
-<!ELEMENT OfInterestTo  (Relevance? )>
-<!ATTLIST OfInterestTo  %localid;
-                        %formalname;
-                        %assignment; >
+<!ELEMENT OfInterestTo (Relevance?)>
+<!ATTLIST OfInterestTo
+       %localid; 
+       %formalname; 
+       %assignment; 
+>
 <!-- 
 ==================================== Origin ====================================
 A wrapper for all or part of the text of a piece of text, which provides a
@@ -992,23 +1263,32 @@ can be a simple fragment identifier consisting of a # character followed by the
 value of the Duid of an element in the current document.
 ================================================================================
 -->
-<!ELEMENT Origin  (#PCDATA | Origin )*>
-<!ATTLIST Origin  %localid;
-                  %assignment;
-                  Href       CDATA  #IMPLIED >
+<!ELEMENT Origin (#PCDATA | Origin)*>
+<!ATTLIST Origin
+       %localid; 
+       %assignment; 
+       Href CDATA #IMPLIED
+>
 <!-- 
 =================================== Party ======================================
 An indication of the person, company or organisation that has a particular
 relationship to this NewsItem in the news workflow. The value of the FormalName
 attribute is a formal name for the Party. Its meaning and permitted values
 are determined by a controlled vocabulary as described in the comment to the
-formalname ENTITY declaration above.
+formalname ENTITY declaration above. The optional Topic attribute may be used as
+a direct pointer to that Topic. The pointer may take the form of an http URL or
+a NewsML URN, or a # character followed by the value of the Duid attribute of a
+Topic element in the current document. The Property child element was added in version 1.1 to eliminate 
+the need for creation of ad-hoc topics for volatile information internal to a NewsML document (eg the name 
+of the person involved in editing of the story, which is usually internal information to the provider).
 ================================================================================
 -->
-<!ELEMENT Party EMPTY>
-<!ATTLIST Party  %localid;
-                 %formalname;
-                 Topic      CDATA  #IMPLIED >
+<!ELEMENT Party (Property)*>
+<!ATTLIST Party
+       %localid; 
+       %formalname; 
+       Topic CDATA #IMPLIED
+>
 <!-- 
 =================================== Priority ===================================
 An indication of the priority notation of a NewsItem. The value of the
@@ -1018,12 +1298,14 @@ the comment to the formalname ENTITY declaration above.
 ================================================================================
 -->
 <!ELEMENT Priority EMPTY>
-<!ATTLIST Priority  %localid;
-                    %formalname; >
+<!ATTLIST Priority
+       %localid; 
+       %formalname; 
+>
 <!-- 
 =================================== Property ===================================
-A property of a NewsComponent or of a Topic. The property has a name and either
-a simple Value or a complex value consisting of a set of further properties.
+A property of a NewsItem, NewsComponent, ContentItem, Topic, Location or Party. The property has a 
+name and either  a simple Value or a complex value consisting of a set of further properties.
 
 Value
 =====
@@ -1046,6 +1328,7 @@ Example:
   <DefaultVocabularyFor Scheme="short" Context="Metadata/Property[@FormalName='Width']"/>
  </Resource>
 </Catalog>
+...
 <Property FormalName="Width" Vocabulary="#resource1">
  <Property FormalName="Unit" ValueRef="urn:newsml:iptc.org:20001006:units:1#cm"/>
  <Property FormalName="Quantity" Value="7.5"/>
@@ -1059,32 +1342,43 @@ URL, or a NewsML URN, or a fragment identifier consisting of a # charactger
 followed by the Duid of an element in the current document. The pointer must
 reference either a Resource element that designates an external controlled
 vocabulary, or a TopicSet element, that is itself the controlled vocabulary.
-================================================================================
--->
-<!ELEMENT Property  (Property* )>
-<!ATTLIST Property  %localid;
-                    %formalname;
-                    %assignment;
-                    Value         CDATA  #IMPLIED
-                    ValueRef      CDATA  #IMPLIED
-                    AllowedValues CDATA  #IMPLIED >
+
+AllowedScheme (added in Version 1.1)
+=============
+The AllowedScheme attribute, if present, distinguishes the Scheme in a controlled
+vocabulary that delimits the set of allowed values for the property. For a match to be 
+obtained within the controlled vocabulary both the AllowedScheme  must match the 
+Scheme in the vocabulary and the Value must match the FormalName in the vocabulary. 
+The use of the AllowedScheme attribute serves to indicate that the Value data is
+ drawn from a controlled vocabulary rather that being an uncontrolled entry.
+================================================================================
+-->
+<!ELEMENT Property (Property*)>
+<!ATTLIST Property
+       %localid; 
+       %formalname; 
+       %assignment; 
+       Value CDATA #IMPLIED
+       ValueRef CDATA #IMPLIED
+       AllowedValues CDATA #IMPLIED
+       AllowedScheme CDATA #IMPLIED
+>
 <!-- 
 =================================== Provider ===================================
 An individual and/or company or organisation that released a news object for
 publication.
 ================================================================================
 -->
-<!ELEMENT Provider  (%party; )>
-<!ATTLIST Provider  %localid; >
+<!ELEMENT Provider (%party;)>
+<!ATTLIST Provider
+       %localid; 
+>
 <!-- 
 ================================== ProviderId ==================================
 An identifier for the news provider that produced the NewsItem. The
 provider's ID is specified in the element content. This should be an Internet
 domain name that is owned by the provider at the date identified by the DateId
-subelement of the NewsIdentifier, or the name for the Provider drawn from a
-controlled vocabulary identified by a URN specified in the Vocabulary attribute.
-This will ensure that the identity of the provider can be inferred unambiguously
-from the full NewsIdentifier.
+subelement of the NewsIdentifier.
 
 Example: 
 <NewsIdentifier>
@@ -1099,40 +1393,37 @@ International Press Telecommunications Council (IPTC) and no-one else, it is
 certain that IPTC is the provider in this case.
 ================================================================================
 -->
-<!ELEMENT ProviderId  (#PCDATA )>
-<!ATTLIST ProviderId  Vocabulary CDATA  #IMPLIED >
+<!ELEMENT ProviderId (#PCDATA)>
+<!ATTLIST ProviderId
+       Vocabulary CDATA #IMPLIED
+>
 <!-- 
 =============================== PublicIdentifier ===============================
 A public identifier (in the sense defined by the XML 1,0 Specification) for a
 NewsItem. This is the NewsML URN, and must be constructed as follows: 
 
-If the ProviderId is a domain name
-
 urn:newsml:{ProviderId}:{DateId}:{NewsItemId}:{RevisionId}{RevisionId@Update}
 
-If the ProviderId is name drawn from a controlled vocabulary
-
-urn:newsml:|{ProviderId@Vocabulary}|{ProviderId}|:{DateId}:{NewsItemId}:{RevisionId}{RevisionId@Update}
-
 where {x} means "the content of the x subelement of the NewsIdentifier" and
 {x@y} means "the value of the y attribute of the x subelement of the
 NewsIdentifier", with the exception that if the Update attribute of the
-RevisionId element has its default value of N, it is omitted from the URN, and
-that the Vocabulary attribute of the ProviderId element is stripped of the
-substring "urn:" with which it begins. The Vocabulary attribute of ProviderId
-necessarily begins with the characters "urn:" because, as stated in the
-comment to the ProviderId element above, it must take the form of a URN
-identifying a controlled vocabulary.
+RevisionId element has its default value of N, it is omitted from the URN.
+
+Note that the set of characters that can be directly included within a URN 
+is limited.  The allowed characters are specified by the Internet Engineering 
+Task Force (IETF) in its Request For Comments (RFC) number 2141.  
+This document is available at http://www.ietf.org/rfc/rfc2141.txt.  
+Any character that is not within the permitted URN character set must be 
+converted to a sequence of legal characters as described in RFC 2141.
 
 Note that the existence of this URN enables the NewsItem to be referenced
 unambiguously by pointers from other XML elements or resources. Within such
-pointers, if  the RevisionId, its preceding : character and its following Update
+pointers, if the RevisionId, its preceding : character and its following Update
 qualifier are omitted, then the pointer designates the most recent revision at
 the time it is resolved.
 ================================================================================
 -->
-<!ELEMENT PublicIdentifier  (#PCDATA )>
-
+<!ELEMENT PublicIdentifier (#PCDATA)>
 <!-- 
 ================================== Relevance ===================================
 An indication of the relevance of a NewsItem to a given target audience. The
@@ -1142,9 +1433,11 @@ described in the comment to the formalname ENTITY declaration above.
 ================================================================================
 -->
 <!ELEMENT Relevance EMPTY>
-<!ATTLIST Relevance  %localid;
-                     %formalname;
-                     %assignment; >
+<!ATTLIST Relevance
+       %localid; 
+       %formalname; 
+       %assignment; 
+>
 <!--
 =================================== Replace ====================================
 An instruction to replace a designated element within a NewsItem. The element
@@ -1155,30 +1448,36 @@ value is equal to the value of the Replace element's DuidRef attribute.
 ================================================================================
 -->
 <!ELEMENT Replace ANY>
-<!ATTLIST Replace  %localid;
-                   DuidRef CDATA  #REQUIRED >
+<!ATTLIST Replace
+       %localid; 
+       DuidRef CDATA #REQUIRED
+>
 <!-- 
 ================================== Resource ====================================
 An indication where a given resource can be found, and whether it is to be used
 as the default vocabulary for certain formal names within the current subtree
 of a NewsML document. The Urn attribute provides a NewsML URN for the resource.
-THe Url attribute(s) provide(s) a location or locations where the resource may
+The Url attribute(s) provide(s) a location or locations where the resource may
 be found. The DefaultVocabularyFor element contains an XPath pattern. The
 identified resource acts as default vocabulary for any element within the
 subtree whose root is the parent of the current Catalog, that matches this XPath
 pattern.
 ================================================================================
 -->
-<!ELEMENT Resource  (Urn? , Url* , DefaultVocabularyFor* )>
-<!ATTLIST Resource  %localid; >
+<!ELEMENT Resource (Urn?, Url*, DefaultVocabularyFor*)>
+<!ATTLIST Resource
+       %localid; 
+>
 <!-- 
 =============================== RevisionHistory ================================
 A pointer to a file containing the revision history of the NewsItem.
 ================================================================================
 -->
 <!ELEMENT RevisionHistory EMPTY>
-<!ATTLIST RevisionHistory  %localid;
-                           Href    CDATA  #REQUIRED >
+<!ATTLIST RevisionHistory
+       %localid; 
+       Href CDATA #REQUIRED
+>
 <!-- 
 ================================== RevisionId ==================================
 A positive integer indicating which Revision of a given NewsItem this is. Any
@@ -1195,9 +1494,11 @@ to A. If neither of these is the case, then the Update attribute must be set
 to N.
 ================================================================================
 -->
-<!ELEMENT RevisionId  (#PCDATA )>
-<!ATTLIST RevisionId  PreviousRevision CDATA  #REQUIRED
-                      Update           CDATA  #REQUIRED >
+<!ELEMENT RevisionId (#PCDATA)>
+<!ATTLIST RevisionId
+       PreviousRevision CDATA #REQUIRED
+       Update CDATA #REQUIRED
+>
 <!-- 
 ================================ RevisionStatus ================================
 Indicates the status that previous revisions now has as a result of the release
@@ -1206,9 +1507,11 @@ the RevisionId of the revision in question. If it is not present, then the
 status applies to ALL previous revisions, without exception.
 ================================================================================
 -->
-<!ELEMENT RevisionStatus  (Status )>
-<!ATTLIST RevisionStatus  %localid;
-                          Revision CDATA  #IMPLIED >
+<!ELEMENT RevisionStatus (Status)>
+<!ATTLIST RevisionStatus
+       %localid; 
+       Revision CDATA #IMPLIED
+>
 <!-- 
 ================================= RightsHolder =================================
 A string of text indicating who has the usage rights, optionally enriched with
@@ -1216,10 +1519,12 @@ pointers to further information about the relevant people, companies or
 organisations.
 ================================================================================
 -->
-<!ELEMENT RightsHolder  (#PCDATA | Origin )*>
-<!ATTLIST RightsHolder  %localid;
-                        xml:lang   CDATA  #IMPLIED
-                        %assignment; >
+<!ELEMENT RightsHolder (#PCDATA | Origin)*>
+<!ATTLIST RightsHolder
+       %localid; 
+       xml:lang CDATA #IMPLIED
+       %assignment; 
+>
 <!-- 
 ================================== RightsLine ==================================
 A displayable version of rights information. Note that this is distinct from
@@ -1228,17 +1533,21 @@ rights information is about who is allowed to use it, in what way and under
 what circumstances.
 ================================================================================
 -->
-<!ELEMENT RightsLine  (#PCDATA | Origin )*>
-<!ATTLIST RightsLine  %localid;
-                      xml:lang CDATA  #IMPLIED >
+<!ELEMENT RightsLine (#PCDATA | Origin)*>
+<!ATTLIST RightsLine
+       %localid; 
+       xml:lang CDATA #IMPLIED
+>
 <!-- 
 ================================ RightsMetadata ================================
 Information about the rights pertaining to a NewsComponent. 
 ================================================================================
 -->
-<!ELEMENT RightsMetadata  (Catalog? , Copyright* , UsageRights* , Property* )>
-<!ATTLIST RightsMetadata  %localid;
-                          %assignment; >
+<!ELEMENT RightsMetadata (Catalog?, Copyright*, UsageRights*, Property*)>
+<!ATTLIST RightsMetadata
+       %localid; 
+       %assignment; 
+>
 <!-- 
 ===================================== Role =====================================
 An identifier of the role played by a NewsComponent within a NewsComponent
@@ -1250,39 +1559,49 @@ declaration above.
 ================================================================================
 -->
 <!ELEMENT Role EMPTY>
-<!ATTLIST Role  %localid;
-                %formalname; >
+<!ATTLIST Role
+       %localid; 
+       %formalname; 
+>
 <!-- 
 =================================== SentFrom ===================================
 An individual and/or company or organisation from whom the NewsML document is
 being sent.
 ================================================================================
 -->
-<!ELEMENT SentFrom  (%party; )>
-<!ATTLIST SentFrom  %localid; >
+<!ELEMENT SentFrom (%party;)>
+<!ATTLIST SentFrom
+       %localid; 
+>
 <!-- 
 ==================================== SentTo ====================================
 An individual and/or company or organisation to whom the NewsML document is
 being sent.
 ================================================================================
 -->
-<!ELEMENT SentTo  (%party; )>
-<!ATTLIST SentTo  %localid; >
+<!ELEMENT SentTo (%party;)>
+<!ATTLIST SentTo
+       %localid; 
+>
 <!-- 
 ================================== SeriesLine ==================================
 A displayable version of information about a news object's place in a series.
 ================================================================================
 -->
-<!ELEMENT SeriesLine  (#PCDATA | Origin )*>
-<!ATTLIST SeriesLine  %localid;
-                      xml:lang CDATA  #IMPLIED >
+<!ELEMENT SeriesLine (#PCDATA | Origin)*>
+<!ATTLIST SeriesLine
+       %localid; 
+       xml:lang CDATA #IMPLIED
+>
 <!-- 
 ================================== SizeInBytes =================================
 The exact size in bytes of a ContentItem's inline or referenced data object. 
 ================================================================================
 -->
-<!ELEMENT SizeInBytes  (#PCDATA )>
-<!ATTLIST SizeInBytes  %localid; >
+<!ELEMENT SizeInBytes (#PCDATA)>
+<!ATTLIST SizeInBytes
+       %localid; 
+>
 <!-- 
 =================================== SlugLine ===================================
 A string of text, possibly embellished by hyperlinks and/or formatting, used to
@@ -1291,9 +1610,11 @@ and the uses to which it is put, are a matter for individual providers to
 define within their own workflow and business practice.) 
 ================================================================================
 -->
-<!ELEMENT SlugLine  (#PCDATA | Origin )*>
-<!ATTLIST SlugLine  %localid;
-                    xml:lang CDATA  #IMPLIED >
+<!ELEMENT SlugLine (#PCDATA | Origin)*>
+<!ATTLIST SlugLine
+       %localid; 
+       xml:lang CDATA #IMPLIED
+>
 <!-- 
 ==================================== Source ====================================
 An individual and/or company or organisation that provided source material for
@@ -1303,19 +1624,23 @@ syndicated. Note that a sequence of Source elements can be used to indicate the
 sequence of syndicators through which a NewsItem has passed.
 ================================================================================
 -->
-<!ELEMENT Source  (%party; )>
-<!ATTLIST Source  %localid;
-                  NewsItem CDATA  #IMPLIED >
+<!ELEMENT Source (%party;)>
+<!ATTLIST Source
+       %localid; 
+       NewsItem CDATA #IMPLIED
+>
 <!-- 
 ================================== StartDate ===================================
 A natural-language statement of the date at which specified usage rights come
 into effect.
 ================================================================================
 -->
-<!ELEMENT StartDate  (#PCDATA | Origin )*>
-<!ATTLIST StartDate  %localid;
-                     xml:lang   CDATA  #IMPLIED
-                     %assignment; >
+<!ELEMENT StartDate (#PCDATA | Origin)*>
+<!ATTLIST StartDate
+       %localid; 
+       xml:lang CDATA #IMPLIED
+       %assignment; 
+>
 <!-- 
 ==================================== Status ===================================
 An indication of the Status of a NewsItem. The value of the FormalName
@@ -1325,8 +1650,10 @@ formalname ENTITY declaration above.
 ================================================================================
 -->
 <!ELEMENT Status EMPTY>
-<!ATTLIST Status  %localid;
-                  %formalname; >
+<!ATTLIST Status
+       %localid; 
+       %formalname; 
+>
 <!-- 
 =============================== StatusWillChange ===============================
 Advance notification of a status change that will automatically occur at the
@@ -1336,16 +1663,20 @@ a specified time. This is equivalent to announcing in advance the time at which
 the embargo will end and the item will be released.
 ================================================================================
 -->
-<!ELEMENT StatusWillChange  (FutureStatus , DateAndTime )>
-<!ATTLIST StatusWillChange  %localid; >
+<!ELEMENT StatusWillChange (FutureStatus, DateAndTime)>
+<!ATTLIST StatusWillChange
+       %localid; 
+>
 <!-- 
 ================================= SubHeadLine ==================================
 A displayable subsidiary headline.
 ================================================================================
 -->
-<!ELEMENT SubHeadLine  (#PCDATA | Origin )*>
-<!ATTLIST SubHeadLine  %localid;
-                       xml:lang CDATA  #IMPLIED >
+<!ELEMENT SubHeadLine (#PCDATA | Origin)*>
+<!ATTLIST SubHeadLine
+       %localid; 
+       xml:lang CDATA #IMPLIED
+>
 <!-- 
 =================================== Subject ====================================
 An indication of the Subject of a NewsItem. The value of the FormalName
@@ -1355,20 +1686,24 @@ formalname ENTITY declaration above.
 ================================================================================
 -->
 <!ELEMENT Subject EMPTY>
-<!ATTLIST Subject  %localid;
-                   %formalname;
-                   %assignment; >
+<!ATTLIST Subject
+       %localid; 
+       %formalname; 
+       %assignment; 
+>
 <!-- 
 ================================= SubjectCode ==================================
 A container for the IPTC Subject Codes that indicate the subject of a NewsItem,
-as defined in the IPTC Information Interchange Model. It consists of one more
+as defined in the IPTC Subject Reference Scheme. It consists of one more
 Subject, SubjectMatter and SubjectDetail elements, optionally amplified by one
 or more SubjectQualifier elements.
 ================================================================================
 -->
-<!ELEMENT SubjectCode  ( (Subject | SubjectMatter | SubjectDetail ) , SubjectQualifier* )*>
-<!ATTLIST SubjectCode  %localid;
-                       %assignment; >
+<!ELEMENT SubjectCode ((Subject | SubjectMatter | SubjectDetail), SubjectQualifier*)*>
+<!ATTLIST SubjectCode
+       %localid; 
+       %assignment; 
+>
 <!-- 
 ================================ SubjectDetail =================================
 An indication of the SubjectDetail of a NewsItem. The value of the FormalName
@@ -1378,9 +1713,11 @@ to the formalname ENTITY declaration above.
 ================================================================================
 -->
 <!ELEMENT SubjectDetail EMPTY>
-<!ATTLIST SubjectDetail  %localid;
-                         %formalname;
-                         %assignment; >
+<!ATTLIST SubjectDetail
+       %localid; 
+       %formalname; 
+       %assignment; 
+>
 <!-- 
 ================================ SubjectMatter =================================
 An indication of the SubjectMatter of a NewsItem. The value of the FormalName
@@ -1390,9 +1727,11 @@ the formalname ENTITY declaration above.
 ================================================================================
 -->
 <!ELEMENT SubjectMatter EMPTY>
-<!ATTLIST SubjectMatter  %localid;
-                         %formalname;
-                         %assignment; >
+<!ATTLIST SubjectMatter
+       %localid; 
+       %formalname; 
+       %assignment; 
+>
 <!-- 
 =============================== SubjectQualifier ===============================
 An indication of the SubjectQualifier of a NewsItem. The value of the FormalName
@@ -1402,17 +1741,21 @@ the formalname ENTITY declaration above.
 ================================================================================
 -->
 <!ELEMENT SubjectQualifier EMPTY>
-<!ATTLIST SubjectQualifier  %localid;
-                            %formalname;
-                            %assignment; >
+<!ATTLIST SubjectQualifier
+       %localid; 
+       %formalname; 
+       %assignment; 
+>
 <!-- 
 =============================== SystemIdentifier ===============================
 A system identifier (in the sense defined by the XML 1,0 Specification) for a
 NewsItem.
 ================================================================================
 -->
-<!ELEMENT SystemIdentifier  (#PCDATA )>
-<!ATTLIST SystemIdentifier  %localid; >
+<!ELEMENT SystemIdentifier (#PCDATA)>
+<!ATTLIST SystemIdentifier
+       %localid; 
+>
 <!-- 
 ============================= ThisRevisionCreated ==============================
 The date and, optionally, time at which the current revision of a NewsItem was
@@ -1420,8 +1763,10 @@ created, expressed in ISO 8601 Basic Format, as described in the comment to the
 DateAndTime attribute within the assignment ENTITY declaration above.
 ================================================================================
 -->
-<!ELEMENT ThisRevisionCreated  (#PCDATA )>
-<!ATTLIST ThisRevisionCreated  %localid; >
+<!ELEMENT ThisRevisionCreated (#PCDATA)>
+<!ATTLIST ThisRevisionCreated
+       %localid; 
+>
 <!--
 ==================================== Topic =====================================
 This element provides information about a thing (Topic) named by a formal
@@ -1431,9 +1776,11 @@ attribute provides a pointer, in the form of a URL or URN, to additional
 information about the Topic.
 ================================================================================
 -->
-<!ELEMENT Topic  (Comment* , Catalog? , TopicType+ , FormalName* , Description* , Property* )>
-<!ATTLIST Topic  %localid;
-                 Details CDATA  #IMPLIED >
+<!ELEMENT Topic (Comment*, Catalog?, TopicType+, FormalName*, Description*, Property*)>
+<!ATTLIST Topic
+       %localid; 
+       Details CDATA #IMPLIED
+>
 <!-- 
 =============================== TopicOccurrence ================================
 An indication that a particular topic occurs within the content of a
@@ -1444,9 +1791,11 @@ document.
 ================================================================================
 -->
 <!ELEMENT TopicOccurrence EMPTY>
-<!ATTLIST TopicOccurrence  %localid;
-                           %assignment;
-                           Topic      CDATA  #IMPLIED >
+<!ATTLIST TopicOccurrence
+       %localid; 
+       %assignment; 
+       Topic CDATA #IMPLIED
+>
 <!-- 
 ================================== TopicSet ====================================
 A container for Topics. The value of the FormalName attribute is a formal name
@@ -1455,9 +1804,11 @@ controlled vocabulary as described in the comment to the formalname ENTITY
 declaration above.
 ================================================================================
 -->
-<!ELEMENT TopicSet  (Comment* , Catalog? , TopicSetRef* , Topic* )>
-<!ATTLIST TopicSet  %localid;
-                    %formalname; >
+<!ELEMENT TopicSet (Comment*, Catalog?, TopicSetRef*, Topic*)>
+<!ATTLIST TopicSet
+       %localid; 
+       %formalname; 
+>
 <!-- 
 ================================= TopicSetRef ==================================
 A pointer to a TopicSet that is to be merged with the current one. The TopicSet
@@ -1476,9 +1827,11 @@ Topcis consists of creating a single Topic that contains all the children of
 both, and eliminating duplicates.
 ================================================================================
 -->
-<!ELEMENT TopicSetRef  (Comment* )>
-<!ATTLIST TopicSetRef  %localid;
-                       TopicSet CDATA  #IMPLIED >
+<!ELEMENT TopicSetRef (Comment*)>
+<!ATTLIST TopicSetRef
+       %localid; 
+       TopicSet CDATA #IMPLIED
+>
 <!-- 
 ================================== TopicType ===================================
 An indication of the type of a Topic. The value of the FormalName attribute is
@@ -1488,22 +1841,26 @@ declaration above.
 ================================================================================
 -->
 <!ELEMENT TopicType EMPTY>
-<!ATTLIST TopicType  %localid;
-                     %formalname; >
+<!ATTLIST TopicType
+       %localid; 
+       %formalname; 
+>
 <!-- 
 ================================== TopicUse ====================================
 An indication of where a particular Topic is used in a NewsML document. The
 value of the Topic attribute must consist of a # character followed by the
 value of the Duid of a Topic in the current document. The value of the Context
 attribute is an XPath pattern indicating the context where the referenced topic
-is used within the subtree to which the current Catalog applies. If the Context
+is used within the subtree to which the current Catalog applies.- -cut llm - - If the Context
 attribute is not present, the TopicUse element simply states that this topic is
-present somewhere in the subtree.
+present somewhere in the subtree- -cut llm - -.
 ================================================================================
 -->
 <!ELEMENT TopicUse EMPTY>
-<!ATTLIST TopicUse  Topic   CDATA  #REQUIRED
-                    Context CDATA  #IMPLIED >
+<!ATTLIST TopicUse
+       Topic CDATA #REQUIRED
+       Context CDATA #IMPLIED
+>
 <!-- 
 ================================ TransmissionId ================================
 An identifier for the NewsML document transmission. This should be unique among
@@ -1511,68 +1868,82 @@ all distinct transmissions from the same publisher. If a transmission is
 repeated (perhaps because the sender is not confident that it was successfully
 received) then the same TransmissionId content may be used, but a Repeat
 attribute should be provided to distinguish the second transmission from the
-first. The form that the value of the Repeat attribute takes is determined by
+first. - -cut llm - -The form that the value of the Repeat attribute takes is determined by
 the provider. Likewise, the format for the TransmissionId itself is for the
 provider to decide. It could for example consist of a channel identifier
-followed by a sequence number.
+followed by a sequence number- -cut llm - -.
 ================================================================================
 -->
-<!ELEMENT TransmissionId  (#PCDATA )>
-<!ATTLIST TransmissionId  %localid;
-                          Repeat  CDATA  #IMPLIED >
+<!ELEMENT TransmissionId (#PCDATA)>
+<!ATTLIST TransmissionId
+       %localid; 
+       Repeat CDATA #IMPLIED
+>
 <!-- 
 ==================================== Update ====================================
 A modification to an existing NewsItem. This can be an insertion, replacement
-or deletion. Note that the Update element cannot be used to modify the
+or deletion. - -cut llm - -Note that the Update element cannot be used to modify the
 NewsManagement or Identification element, or any of their descendants.
 Modifications to these parts of the NewsItem can be made by issuing the
 NewsItem under the current revision number, with only the Identification and
 NewsManagement elements present. These will replace the previous Identification
-and NewsManagement elements in their totality.
+and NewsManagement elements in their totality- -cut llm - -.
 ================================================================================
 -->
-<!ELEMENT Update  (InsertBefore | InsertAfter | Replace | Delete )*>
-<!ATTLIST Update  %localid; >
+<!ELEMENT Update (InsertBefore | InsertAfter | Replace | Delete)*>
+<!ATTLIST Update
+       %localid; 
+>
 <!-- 
 =================================== Urgency ====================================
 An indication of the urgency of a NewsItem. The value of the FormalName
 attribute is a formal name for the Urgency. Its meaning and permitted values
-are determined by a controlled vocabulary as described in the comment to the
-formalname ENTITY declaration above.
+are determined by a controlled vocabulary - -cut llm - - as described in the comment to the
+formalname ENTITY declaration above- -cut llm - -.
 ================================================================================
 -->
 <!ELEMENT Urgency EMPTY>
-<!ATTLIST Urgency  %localid;
-                   %formalname; >
+<!ATTLIST Urgency
+       %localid; 
+       %formalname; 
+>
 <!-- 
 ===================================== Url ======================================
 A URL that can be used to locate a Resource.
 ================================================================================
 -->
-<!ELEMENT Url  (#PCDATA )>
-<!ATTLIST Url  %localid; >
+<!ELEMENT Url (#PCDATA)>
+<!ATTLIST Url
+       %localid; 
+>
 <!-- 
 ===================================== Urn ======================================
 A URN that provides a global identifier for a resource. This will typically (but
 not necessarily) be a NewsML URN as described in the comment to PublicIdentifier.
 ================================================================================
 -->
-<!ELEMENT Urn  (#PCDATA )>
-<!ATTLIST Urn  %localid; >
+<!ELEMENT Urn (#PCDATA)>
+<!ATTLIST Urn
+       %localid; 
+>
 <!--
 ================================= UsageRights ==================================
 Information about the usage rights pertaining to a NewsComponent. 
 ================================================================================
 -->
-<!ELEMENT UsageRights  (UsageType? , Geography? , RightsHolder? , Limitations? , StartDate? , EndDate? )>
-<!ATTLIST UsageRights  %localid;
-                       %assignment; >
+<!ELEMENT UsageRights (UsageType?, Geography?, RightsHolder?, Limitations?, StartDate?, EndDate?)>
+<!ATTLIST UsageRights
+       %localid; 
+       %assignment; 
+>
 <!-- 
 ================================== UsageType ===================================
 A natural-language indication of the type of usage to which the rights apply.
 ================================================================================
 -->
-<!ELEMENT UsageType  (#PCDATA | Origin )*>
-<!ATTLIST UsageType  %localid;
-                     xml:lang   CDATA  #IMPLIED
-                     %assignment; >
+<!ELEMENT UsageType (#PCDATA | Origin)*>
+<!ATTLIST UsageType
+       %localid; 
+       xml:lang CDATA #IMPLIED
+       %assignment; 
+>
diff --git a/test/valid/index.xml b/test/valid/index.xml
index 2a0e6714..113d31af 100644
--- a/test/valid/index.xml
+++ b/test/valid/index.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE NewsML PUBLIC "urn:newsml:iptc.org:20001006:NewsMLv1.0:1" "dtds/NewsMLv1.0.dtd" [
+<!DOCTYPE NewsML SYSTEM "dtds/NewsMLv1.2.dtd" [
   <!ENTITY % nitf SYSTEM "dtds/nitf-2-5.dtd">
   %nitf;
 ]>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]