← Prev in month ← Prev in thread

[Philosophical] What is an XML document?

From
Roger L Costello <>
To
"" <>
Date
2022-06-04T18:00:09Z
ID
<>
Thread
[Philosophical] What is an XML document?
Hi Folks,

There is a file on my laptop that consists exclusively of these characters:

<Greeting>Hello, world!</Greeting>

Question: Is the file an XML document?

Answer: No, it is simply a text file.

Evidence to support my answer: I opened Notepad, dragged and dropped the file into Notepad, and subsequently Notepad displayed the file's content as a linear sequence of characters, i.e., text.

Philosophical Discussion: 

An XML document is "in the eye of the beholder." That is, to Notepad my file is just text, but to Apache Xerces my file has a structure consistent with the XML specification and therefore -- to Xerces -- it is an XML document.

In order for a file to be considered an XML document, two things must align:

1. The application assessing the file must have internalized the grammar rules specified in the XML specification.

2. The application must process the file to determine that the file has a structure consistent with the grammar rules.

Only if 1 and 2 are satisfied may the application pronounce "Yes, this is an XML document."

Let's dig a bit deeper...

Clearly the following is a linear sequence of characters:

<Greeting>Hello, world!</Greeting>

It only becomes an XML document when an XML-aware application has processed it (assessed it) and determined compliance with the XML grammar. The most common method of determining if an input string conforms to a grammar is to lexically analyze the string into tokens and then see if the tokens matches a specified grammar; along the way an in-memory "parse tree" is created. If we successfully create a complete parse tree, then we have an XML document. If we have an XML document, then we have successfully created a complete parse tree. An XML document is a parse tree.

No one would deny that a parse tree is a "data structure." Therefore an XML document is a data structure.

Do you agree with my line of reasoning? Where does my logic go astray?

/Roger
← Prev in month ← Prev in thread