[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Indirection in XML

  • From: Rick Jelliffe <rjelliffe@allette.com.au>
  • To: "Costello, Roger L." <costello@mitre.org>
  • Date: Sun, 7 May 2017 15:07:55 +1000

Re:  Indirection in XML
(Apologies if off-topic.) The philosophers talk to two degrees of abstraction: 'total' abstraction is where you remove the specific details and are only left with what is common to all things of, say, a genus,  while 'formal abstraction' is where you extract all the things that make that thing unique. 

Everyone was born on some day is total but you were born on that day is formal (...except my mother, whose parents disputed which day she was born on, right from the next day.) 

So a 'layer' is usually syntax/processing to represent the total abstraction (e.g. type) and the formal abstraction (e.g. implementation.) 

So you might say that for a publication, the XML schema more represents a total abstraction while the stylesheet more represents a formal abstraction. So the entity name might be a total abstraction while the entity value might be the formal abstraction. 

Parnas' Information Hiding is an example of total abstraction, but the two degrees go hand in hand. (SGML 's revolution was that if you needed documents published on unknown systems decades or centuries hence, you need to do a total abstraction and leave the formal abstraction work for later. In fact SGML has a particular kind of entity, the SDATA entity, which had the semantics 'I am not the real value, just an indication'.)

There is a fan out effect: once a  system reaches a certain level of complexity, you need to introduce extra layer, to work out what abstractions are necessary and practical to increase cohesion and coupling. The talk of 'simplicity' often reveals only that the speaker's use case does not require an extra level of abstraction (or that the extra levels are catered for by a different technology in the same ecosystem, which is respectable.)

(IMHO the difference between a toy language and a professional one is whether there is at least one level of abstraction supported: const, getters and setters, XML entities. If it turns out you need more than one layer, you may abstract the commonalities of the layers: so where old unix C has  cpp as a second layer of abstraction  (and m4 as a third),  these were abstracted to be classes and objects.)  


On 7 May 2017 06:42, "Costello, Roger L." <costello@mitre.org> wrote:

Hi Folks,

In the following XML document, an entity is defined and then it is used in the XML:

<?xml version="1.0"?>
<!DOCTYPE Commentary [
<!ENTITY adjective "insightful">
    His presentation was


Instead is using the word ‘insightful’ directly in the <Commentary> element, it is used indirectly, via the entity. The entity introduced a level of indirection.


In the following XML Schema, a simpleType is defined and then it is referenced in the declaration of the ‘title’ element:

<xs:element name="title" type="person-title" />

<xs:simpleType name="person-title">
<xs:restriction base="xs:string">
<xs:enumeration value="Mr." />
<xs:enumeration value="Mrs." />
<xs:enumeration value="Miss" />

Instead of providing the simpleType directly in the ‘title’ element declaration, it is provided indirectly, via a reference. The reference introduced a level of indirection.


In the following XSLT document, a variable is defined and then later it is dereferenced in an output statement:

<xsl:variable name="author" select="/Book/Author[1]/text()"/>

. . .

<xsl:sequence select="('The author is: ', $author)" />


Instead of showing the author directly in the output statement, the author is shown indirectly, via a variable. The variable introduced a level of indirection.


All problems in computer science can be solved by another level of indirection. – David Wheeler



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
First Name
Last Name
Subscribe in XML format
RSS 2.0
Atom 0.3

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.

Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.