← Prev in month ← Prev in thread

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

From
Roger L Costello <>
To
"" <>
Date
2020-10-12T16:43:07Z
ID
<>
Thread
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
← Prev in month ← Prev in thread