You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
3.9 KiB
118 lines
3.9 KiB
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta name="generator" content=
|
|
"HTML Tidy for Mac OS X (vers 31 October 2006 - Apple Inc. build 13), see www.w3.org" />
|
|
<title>
|
|
-- Axioms of Web architecture
|
|
</title>
|
|
<link rel="Stylesheet" href="di.css" type="text/css" />
|
|
<meta http-equiv="Content-Type" content="text/html" />
|
|
</head>
|
|
<body bgcolor="#DDFFDD" text="#000000">
|
|
<address>
|
|
Tim Berners-Lee<br />
|
|
Date: 1998, last change: $Date: 2009/08/27 21:38:07 $<br />
|
|
Status: personal view only. Editing status: first draft.
|
|
</address>
|
|
<p>
|
|
<a href="./">Up to Design Issues</a>
|
|
</p>
|
|
<h3>
|
|
Axioms of Web Architecture: n
|
|
</h3>
|
|
<hr />
|
|
<h1>
|
|
Mandatory extensions
|
|
</h1>
|
|
<p>
|
|
There is a common requirement for the design of a language on
|
|
the web that it should allow for extensions, but it must
|
|
allow a clear declaration as to whether understanding of an
|
|
extension is a requirement to understanding of the document
|
|
or whether it may be ignored. (See <a href=
|
|
"Evolution.html">Evolvability</a>)
|
|
</p>
|
|
<p>
|
|
Historically the lack of such a "mandatory field" has led to
|
|
a complete inabaility to get any particular guaranteed
|
|
behaviour be clients on the web.
|
|
</p>
|
|
<p>
|
|
This is essential for partial understanding and the smooth
|
|
evolution of the web.
|
|
</p>
|
|
<p>
|
|
A simple requirement on a language is that it not only
|
|
provide for its own extension, but provides for a way to
|
|
explain whether a given extension is optional or not. This is
|
|
a fundamental key to smooth evolution from the language to a
|
|
new version.
|
|
</p>
|
|
<p>
|
|
There are manyways in which it can be done. It can be done
|
|
term by term, or in bulk about a whole new language. It can
|
|
be specified in the new document, in the schema for the new
|
|
language.
|
|
</p>
|
|
<p>
|
|
XML provides in Namespaces a standard way of extending
|
|
languages. It should also, in my opinion, provide a standard
|
|
way to specify mandatopry or optional extensions.
|
|
</p>
|
|
<p>
|
|
I propose two things:
|
|
</p>
|
|
<h3>
|
|
Sublanguages
|
|
</h3>
|
|
<p>
|
|
The simple assertion that language A is a sublanguage of
|
|
language B means that the writer's intent is preserved if a
|
|
dpcument in language A is converted into a document in
|
|
language B just by relabelling every term as being from
|
|
langauge B. For XML, this means that a receiver of namespace
|
|
A can simply process it as though the namespace had been
|
|
delcared as B.
|
|
</p>
|
|
<p>
|
|
This assertion has got to be simple enough to put into a
|
|
document for cases where the functionality is needed without
|
|
the receiver having to dereference a schema.
|
|
</p>
|
|
<h3>
|
|
Optional/Ignoreable/Mandatory flags for elements
|
|
</h3>
|
|
<p>
|
|
In XML there are three simple thiong you can do with an
|
|
element you don't understand.
|
|
</p>
|
|
<ol>
|
|
<li>Stop, and conclude you do not understand the document, or
|
|
the clause in the document; Example : logical NOT
|
|
</li>
|
|
<li>Ignore the elementand all its contents (including child
|
|
elements) Example; <Comment>
|
|
</li>
|
|
<li>Replace the element with its contents (including
|
|
children). Example: <bold>
|
|
</li>
|
|
</ol>
|
|
<p>
|
|
The schema langauge needs to be able to specify these very
|
|
simply, and indeed it would be neatto be able to do it in a
|
|
document for a given elemnt, or in one fell swoop for all the
|
|
elements in a given namespace.
|
|
</p>
|
|
<p>
|
|
Languages which donot use XML should attend to these needs in
|
|
their own way!
|
|
</p>
|
|
<hr />
|
|
<p>
|
|
<a href="Overview.html">Up to Design Issues</a>
|
|
</p>
|
|
<p>
|
|
<a href="../People/Berners-Lee">Tim BL</a>
|
|
</p>
|
|
</body>
|
|
</html>
|