W3C

Web Architecture

Web Architecture focuses on the foundation technologies and principles which sustain the Web, including URIs and HTTP.

Architecture Principles Header link

Web Architecture principles help to design technologies by providing guidance and articulating the issues around some specific choices.

Identifiers Header link

We share things by their names. URL, URI, IRI is the way to name things on the Web and manipulate them. Some additional addressing needs in the Web Services stack motivated some additional layers.

Protocols Header link

Protocols are the vehicle for exchanging our ideas. HTTP is the core protocol of the Web. W3C also is also working on XML Protocols and SOAP in relation to Web Services.

Meta Formats Header link

XML, the Extensible Markup Language, is used to build new formats at low cost (due to widely available tools to manipulate content in those new formats). RDF and OWL allow people to define vocabularies (“ontologies”) of terms as part of the Semantic Web.

Protocol and Meta Format Considerations Header link

Documents on the Web are loosely joined pieces by identifiers. It creates a maze of rich interactions between protocols and formats.

Internationalization Header link

W3C has worked with the community on the internationalization of identifiers (IRIs) and a general character model for the Web.

News Atom

@page { size: A4 portrait; margin: 2cm} @media screen { body {width: 20cm; margin-left: auto; margin-right: auto} } body {font-size: 12pt} pre.code {font-family: monospace} pre {margin-left: 0em} ul.nolabel { margin: 0; margin-left: -2.5em} ul.naked li { list-style-type: none } ol ol {list-style-type: lower-alpha} div.ndli { margin-bottom: 1ex } .math {font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', serif} .sub {font-size: 80%; vertical-align: sub} .termref {text-decoration: none; color: #606000} div.toc h2 {font-size: 120%; margin-top: 0em; margin-bottom: 0em} div.toc h4 {font-size: 100%; margin-top: 0em; margin-bottom: 0em; margin-left: 1em} div.toc h1 {font-size: 140%; margin-bottom: 0em} div.toc ul {margin-top: 1ex} .byline {font-size: 120%} div.figure {margin-left: 2em} div.caption {font-style: italic; font-weight: bold; margin-top: 1em} i i {font-style: normal} Default Prefix Declaration

Default Prefix Declaration

Table of Contents

1. Disclaimer

The ideas behind the proposal presented here are neither particularly new nor particularly mine. I've made the effort to write this down so anyone wishing to refer to ideas in this space can say "Something along the lines of [this posting]" rather than "Something, you know, like, uhm, what we talked about, prefix binding, media-type-based defaulting, that stuff".

2. Introduction

Criticism of XML namespacesas an appropriate mechanism for enabling distributed extensibility for the Web typically targets two issues:

  1. Syntactic complexity
  2. API complexity

Of these, the first is arguably the more significant, because the number of authors exceeds the number of developers by a large margin. Accordingly, this proposal attempts to address the first problem, by providing a defaulting mechanism for namespace prefix bindings which covers the 99% case.

3. The proposal

Binding
Define a trivial XML language which provides a means to associate prefixes with namespace names (URIs);
Invoking from HTML
Define a link relation dpdfor use in the (X)HTML header;
Invoking from XML
Define a processing instruction xml-dpdand/or an attribute xml:dpdfor use at the top of XML documents;
Defaulting by Media Type
Implement a registry which maps from media types to a published dpd file;
Semantics
Define a precedence, which operates on a per-prefix basis, namely xmlns: >> explicit invocation >> application built-in default >> media-type-based default, and a semantics in terms of namespace information itemsor appropriate data-model equivalent on the document element.

4. Why prefixes?

XML namespaces provide two essentially distinct mechanisms for 'owning' names, that is, preventing what would otherwise be a name collision by associating names in some way with some additional distinguishing characteristic:

  1. By prefixing the name, and binding the prefix to a particular URI;
  2. By declaring that within a particular subtree, unprefixed names are associated with a particular URI.

In XML namespaces as they stand today, the association with a URI is done via a namespace declarationwhich takes the form of an attribute, and whose impact is scoped to the subtree rooted at the owner element of that attribute.

Liam Quin has proposedan additional, out-of-band and defaultable, approach to the association for unprefixed names, using patterns to identify the subtrees where particular URIs apply. I've borrowed some of his ideas about how to connect documents to prefix binding definitions.

The approach presented here is similar-but-different, in that its primary goal is to enable out-of-band and defaultable associations of namespaces to names withprefixes, with whole-document scope. The advantages of focussing on prefixed names in this way are:

  • Ad-hocextensibility mechanisms typically use prefixes. The HTML5 specification already has at least two of these: aria-and data-;
  • Prefixed names are more robust in the face of arbitrary cut-and-paste operations;
  • Authors are used to them: For example XSLT stylesheets and W3C XML Schema documents almost always use explicit prefixes extensively;
  • Prefix binding information can be very simple: just a set of pairs of prefix and URI.

Provision is also made for optionally specifying a binding for the default namespace at the document element, primarily for the media type registry case, where it makes sense to associate a primary namespace with a media type.

5. Example

If this proposal were adopted, and a dpd document for use in HTML 4.01 or XHTML1:

<dpd ns="http://www.w3.org/1999/xhtml">
 <pd p="xf" ns="http://www.w3.org/2002/xforms"/>
 <pd p="svg" ns="http://www.w3.org/2000/svg"/>
 <pd p="ml" ns="http://www.w3.org/1998/Math/MathML"/>
</dpd>

was registered against the text/htmlmedia type, the following would result in a DOM with htmland bodyelements in the XHTML namespace and an inputelement in the XForms namespace:

<html>
 <body>
  <xf:input ref="xyzzy">...</xf:input>
 </body>
</html>

An updated Authoring Tool Accessibility Guidelines (ATAG) 2.0 Working Draft was published 29 October 2009. It includes a revised supporting note "Implementing ATAG 2.0". ATAG defines how authoring tools should help Web developers produce Web content that is accessible and conforms to Web Content Accessibility Guidelines (WCAG) 2.0. ATAG also defines how to make authoring tools accessible so that people with disabilities can use them. WAI encourages you to review ATAG 2.0 and submit any comments. See: Call for Review: ATAG 2.0 Working Draft updated, Authoring Tool Accessibility Guidelines (ATAG) Overview. Please send comments by 30 November 2009. (2009-10-29)

WAI has published a Last Call Working Draft of the Evaluation and Report Language (EARL) 1.0 Schema, updated Working Drafts of HTTP Vocabulary in RDF 1.0, Representing Content in RDF 1.0, Pointer Methods in RDF 1.0, Evaluation and Report Language (EARL) 1.0 Requirements, and a First Public Working Draft of the Evaluation and Report Language (EARL) 1.0 Guide. EARL provides a format for expressing test results, such as those generated by Web accessibility evaluation tools, using a vendor-neutral and platform-independent format. WAI encourages you to review EARL 1.0 documents and submit any comments. See: Call for Review: EARL 1.0 Last Call Working Draft e-mail, Evaluation and Report Language (EARL) Overview. Please send comments by 30 November 2009. (2009-10-29)

Richtlinien für barrierefreie Webinhalte (WCAG) 2.0, the German Authorized Translation of Web Content Accessibility Guidelines (WCAG) 2.0, is now available, following completion of the W3C Authorized Translations process. WAI encourages translating WAI documents in all languages. See: WCAG 2.0 Translations for a list of other completed and planned translationsWCAG 2.0 German Authorized Translation Published e-mail (2009-10-29)

Along with the redesigned W3C website, we have a new Accessibility page that introduces the what, why, where, and how of web accessibility. Read what it says about how the impact of disabilities can be radically changed for people using the Web when websites, web technologies, and web tools are properly designed. (2009-10-14)

Comments are being sought on this article prior to final release. Please send any comments to www-international@w3.org( subscribe). We expect to publish a final version in one to two weeks. [search keys: qa-choosing-language-tags]

This tutorial was updated to incorporate changes made to BCP 47 by the recent publication of RFC 5646. Changes to BCP 47 include the introduction of extended language subtags, and the addition of ISO 639-3 language subtags, bringing the total number of subtags in the registry to almost 8,000.

Translators should consider retranslating the whole tutorial. [search keys: article-language-tags]

In order to help the community provide accessible multimedia, W3C made public it's internal Multimedia Accessibility FAQ. The FAQ provides some practical advice on: What do I need to do to make audio and video accessible? How do I get a transcript for my media? How do I do captions? Where can I get more information? W3C's formal guidance on accessible multimedia is provided in Web Content Accessibility Guidelines (WCAG) 2.0. (2009-10-08)

On 1st October, Unicode 5.2 was released! The data files, code charts, and Unicode Standard Annexes for this version are final and are posted on the Unicode site.

For Unicode 5.2, the core specification is no longer just a delta document applied to the book; instead, the entire core specification,with all textual changes integrated, will be available on the Unicode site. As of this announcement, the first five chapters are available; the other chapters will follow soon

For full details about what is new or changed in this release, see the version documentation for Unicode 5.2.

The IETF has published RFC 5646, an update of Tags for Identifying Languages. This specification obsoletes former RFCs 4646, 3066 and 1766.

RFC 5646 makes it possible to use over 7,000 three-letter ISO 639-3 language codes, in addition to the 2 letter codes that have been in use for some time. It also introduces 220 'extended language' subtags, mainly for backwards compatibility.

It continues to be best to refer to this specification as BCP47. This is a non-changing name and web address that points to the latest relevant RFCs.

The Internationalization Working Group at the W3C is working on an article to help users choose language tags, given the various types of subtag that are now available, and the sheer number of subtags.

You can look up language and other subtags in the IANA Language Subtag Registry.

(Richard Ishida has provided an

unofficial tool

for searching the registry that also provides advice for choosing subtags, and allows you to partially validate a hyphen-separated language tag.)