Mandatory.html
3.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<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>