Uploaded image for project: 'OASIS Content Management Interoperability Services (CMIS) TC'
  1. OASIS Content Management Interoperability Services (CMIS) TC
  2. CMIS-276

Elements in feedType and entryType (ATOM.xsd) should be in xs:choice, not xs:sequence

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Schema
    • Labels:
      None
    • Environment:

      n/a

    • Proposal:
      Hide

      <xs:complexType name="feedType">
      <xs:choice minOccurs="3" maxOccurs="unbounded">

      <!-- ektron <xs:sequence> -->
      <xs:element ref="atom:author" minOccurs="0" maxOccurs="unbounded" />
      <xs:element ref="atom:category" minOccurs="0" maxOccurs="unbounded" />
      <xs:element ref="atom:contributor" minOccurs="0"
      maxOccurs="1" />
      <xs:element ref="atom:generator" minOccurs="0" maxOccurs="unbounded" />
      <xs:element ref="atom:icon" minOccurs="0" maxOccurs="unbounded" />
      <xs:element ref="atom:id" minOccurs="1" maxOccurs="1" />
      <xs:element ref="atom:link" minOccurs="0" maxOccurs="unbounded" />
      <xs:element ref="atom:logo" minOccurs="0" maxOccurs="1" />
      <xs:element ref="atom:rights" minOccurs="0" maxOccurs="1" />
      <xs:element ref="atom:subtitle" minOccurs="0" maxOccurs="1" />
      <xs:element ref="atom:title" minOccurs="1" maxOccurs="1" />
      <xs:element ref="atom:updated" minOccurs="1" maxOccurs="1" />

      <!-- original atom extension element -->
      <xs:group ref="atom:extensionElement" />

      <xs:element minOccurs="0" maxOccurs="unbounded" ref="atom:entry" />
      <!-</xs:sequence>->
      </xs:choice>
      <xs:attributeGroup ref="atom:atomCommonAttributes" />
      </xs:complexType>

      <xs:complexType name="entryType">
      <xs:choice minOccurs="3" maxOccurs="unbounded">

      <!-- ektron <xs:sequence>
      <xs:sequence>-->
      <xs:element ref="atom:author" minOccurs="0" maxOccurs="unbounded" />
      <xs:element ref="atom:category" minOccurs="0" maxOccurs="unbounded" />
      <xs:element ref="atom:content" minOccurs="0" maxOccurs="1" />
      <xs:element ref="atom:contributor" minOccurs="0"
      maxOccurs="1" />
      <xs:element ref="atom:id" minOccurs="1" maxOccurs="1" />
      <xs:element ref="atom:link" minOccurs="0" maxOccurs="unbounded" />
      <xs:element ref="atom:published" minOccurs="0" maxOccurs="1" />
      <xs:element ref="atom:rights" minOccurs="0" maxOccurs="1" />
      <xs:element ref="atom:source" minOccurs="0" maxOccurs="1" />
      <xs:element ref="atom:summary" minOccurs="0" maxOccurs="1" />
      <xs:element ref="atom:title" minOccurs="1" maxOccurs="1" />
      <xs:element ref="atom:updated" minOccurs="1" maxOccurs="1" />

      <!-- Normal ATOM extension element -->
      <xs:group ref="atom:extensionElement" />
      <!--</xs:sequence>
      </xs:sequence>-->
      </xs:choice>
      <xs:attributeGroup ref="atom:atomCommonAttributes" />
      </xs:complexType>

      Show
      <xs:complexType name="feedType"> <xs:choice minOccurs="3" maxOccurs="unbounded"> <!-- ektron <xs:sequence> --> <xs:element ref="atom:author" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="atom:category" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="atom:contributor" minOccurs="0" maxOccurs="1" /> <xs:element ref="atom:generator" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="atom:icon" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="atom:id" minOccurs="1" maxOccurs="1" /> <xs:element ref="atom:link" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="atom:logo" minOccurs="0" maxOccurs="1" /> <xs:element ref="atom:rights" minOccurs="0" maxOccurs="1" /> <xs:element ref="atom:subtitle" minOccurs="0" maxOccurs="1" /> <xs:element ref="atom:title" minOccurs="1" maxOccurs="1" /> <xs:element ref="atom:updated" minOccurs="1" maxOccurs="1" /> <!-- original atom extension element --> <xs:group ref="atom:extensionElement" /> <xs:element minOccurs="0" maxOccurs="unbounded" ref="atom:entry" /> <!- </xs:sequence> -> </xs:choice> <xs:attributeGroup ref="atom:atomCommonAttributes" /> </xs:complexType> <xs:complexType name="entryType"> <xs:choice minOccurs="3" maxOccurs="unbounded"> <!-- ektron <xs:sequence> <xs:sequence>--> <xs:element ref="atom:author" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="atom:category" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="atom:content" minOccurs="0" maxOccurs="1" /> <xs:element ref="atom:contributor" minOccurs="0" maxOccurs="1" /> <xs:element ref="atom:id" minOccurs="1" maxOccurs="1" /> <xs:element ref="atom:link" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="atom:published" minOccurs="0" maxOccurs="1" /> <xs:element ref="atom:rights" minOccurs="0" maxOccurs="1" /> <xs:element ref="atom:source" minOccurs="0" maxOccurs="1" /> <xs:element ref="atom:summary" minOccurs="0" maxOccurs="1" /> <xs:element ref="atom:title" minOccurs="1" maxOccurs="1" /> <xs:element ref="atom:updated" minOccurs="1" maxOccurs="1" /> <!-- Normal ATOM extension element --> <xs:group ref="atom:extensionElement" /> <!--</xs:sequence> </xs:sequence>--> </xs:choice> <xs:attributeGroup ref="atom:atomCommonAttributes" /> </xs:complexType>

      Description

      The Atom spec (http://tools.ietf.org/html/rfc4287#page-13) reads, "This specification assigns no significance to the order of appearance of the child elements of atom:entry".

      The .NET SyndicationFeed and SyndicationItem serialization classes for Atom use a different order than specified in the ATOM.xsd.

      By using xs:sequence instead of xs:choice minOccurs="3", the order of the children elements is fixed, which is incompatible with the Microsoft.NET serializer.

        Attachments

          Activity

            People

            • Assignee:
              albertcbrown Al Brown (Inactive)
              Reporter:
              ddomeny Alpesh Patel (Inactive)
            • Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: