Hi Folks, A simple way to represent data is with name-value pairs, e.g., name = John Doe People have been using name-value pairs to represent data for at least 60 years. XML represents data using name-value pairs too! Consider, what are attributes? Answer: They are just name-value pairs, e.g., <Person name="John Doe" employer="Acme Inc." age="30">…</Person> Wow! The realization that XML uses simple name-value pairs to represent data was an Aha! moment for me. Yesterday Michael Kay said something that stirred my mind:
When I read that, the word “pattern” really stuck out for me. Then I got to thinking about patterns. What is a pattern? A pattern is something that repeats. For example, look at this string: ABCABCABCABC… We can identify a pattern in that string, namely, ABC is repeated multiple times. Notice the last sentence: I described the pattern using English. Regular expressions (regex) is a language that was explicitly created for describing patterns,
i.e., regex is a pattern language. We can describe the pattern using the regex language as follows: (ABC)+ So, we have the concept of things that repeat – patterns – and the concept of describing patterns using a language. Regex is one language for describing patterns.
Neat! Now, consider this series of very simple XML documents: <label>Mr.</label> <label>Miss</label> <label>Mrs.</label> I detect a pattern and there is a language that I can use to describe the pattern – the XML Schema Language. Here is a description of the pattern, using the XML Schema language: <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> So, XML Schema is a language for describing patterns. Wow! I think that is pretty cool. Thoughts? /Roger |