Re: [xml-dev] What is the meaning of the first child elementfor an element that is repeatable?
I just found this in my spam folder!
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?
Yes, there may be a risk. The risk is that a schema doesn't incorporate business rules, nor does it document semantic meaning.
Schematron may be able to check business rules to mitigate similar risks, but in cases like this will probably only be useful to provide some human reader an easy spot check.
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?
If you have that option (control of the data model), it seems like a good start, if only because it might force someone to *think* about which is the primary title at some point, hopefully early in the workflow. But it still won't help you tell that 'On the Writing of Prose' is more likely to be a primary title than 'Draft No. 4', or ensure that whoever captures the XML doesn't just stick the attribute on the first title child...
T
On 12 Oct 2020, 17:43 +0100, Roger L Costello <costello@mitre.org>, wrote:
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: xml-dev-unsubscribe@lists.xml.org
subscribe: xml-dev-subscribe@lists.xml.org
List archive: http://lists.xml.org/archives/xml-dev/
List Guidelines: http://www.oasis-open.org/maillists/guidelines.php