RE: What is the meaning of the first child element for an element that is repeatable?

From
Nora M Dowling <>
To
Roger L Costello <>, "" <>
Date
2020-10-12T17:26:45Z
ID
<>
Thread
RE: What is the meaning of the first child element for an element that is repeatable?
Roger,

What I think is that there should be a documentation annotation in the XSD
that indicates that the first title element is for the primary title as
specified in reference document [book schema standard, dated CCYY-MM-DD]. 

In your second example, what is the assurance that only one of the title
elements will hold the primary attribute set to true? Seems like you need a
different schema. If the spec says it has to be first, and it doesn't appear
first, how the code is written will make a difference. One shouldn't infer
what the code is doing based on what is in an XML instance document. 

-Nora


-----Original Message-----
From: Roger L Costello <> 
Sent: Monday, October 12, 2020 12:43 PM
To: 
Subject: [xml-dev] What is the meaning of the first child element for an
element that is repeatable? 

Hi Folks,

A specification says that a book has one or more titles. Here is an example
of how the developers implemented the specification:

<Book>
    <Title>Draft No. 4</Title>
    <Title>On the Writing of Prose</Title> </Book>

The specification says that the first title is the primary title.

To obtain the primary title, the developers created an application that
queries the <Book> element for the first child <Title> element. For the
example, this <Title> element is fetched:

    <Title>Draft No. 4</Title>

Do you agree with the developer's approach to obtaining the primary title?

The developers implemented the XML Schema this way:

<element name="Book">
    <complexType>
        <sequence>
            <element name="Title" maxOccurs="unbounded" type="string" />
        </sequence>
    </complexType>
</element>

That says Book contains one or more Title elements. It says nothing about
ordering the <Title> elements. It does not say that the primary title must
always be the first child <Title> element of <Book>.

It seems to me that there is a risk with creating applications which assume
the first child <Title> element of <Book> is the primary author. Do you
agree that there is a risk? 

Do you avoid the risk?

To avoid the risk, do you add additional information to explicitly indicate
which <Title> element holds the primary title? E.g.,

<Book>
    <Title primary="true">Draft No. 4</Title>
    <Title>On the Writing of Prose</Title> </Book>

Or is that being excessively cautious?

/Roger






_______________________________________________________________________

XML-DEV is a publicly archived, unmoderated list hosted by OASIS to support
XML implementation and development. To minimize spam in the archives, you
must subscribe before posting.

[Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
Or unsubscribe: 
subscribe:  List archive:
http://lists.xml.org/archives/xml-dev/
List Guidelines: http://www.oasis-open.org/maillists/guidelines.php