Cafe con Leche XML News and ResourcesWe’ll start by posing the question: “why are we inventing these new elements?” A reasonable answer would be: “because HTML lacks semantic richness, and by adding these elements, we increase the semantic richness of HTML—that can’t be bad, can it?”
By adding these elements, we are addressing the need for greater semantic capability in HTML, but only within a narrow scope. No matter how many elements we bolt on, we will always think of more semantic goodness to add to HTML. And so, having added as many new elements as we like, we still won’t have solved the problem. We don’t need to add specific terms to the vocabulary of HTML, we need to add a mechanism that allows semantic richness to be added to a document as required. In technical terms, we need to make HTML extensible. HTML 5 proposes no mechanism for extensibility.
HTML 5, therefore, implements a feature that breaks a sizable percentage of current browsers, and doesn’t really allow us to add richer semantics to the language at all.
--John Allsop
Read the rest in A List Apart: Articles: Semantics in HTML 5
The W3C Forms Working Group has published a working draft of XForms for HTML. "XForms for HTML provides a set of attributes and script methods that can be used by the tags or elements of an HTML or XHTML web page to simplify the integration of data-intensive interactive processing capabilities from XForms. The semantics of the attributes are mapped to the rich XForms model-view-controller-connector architecture, thereby allowing web application authors a smoother, selective migration path to the higher-order behaviors available from the full element markup available in modules of XForms." I think the goal here is to hide XForms submission within standard HTML markup, but I haven't fully grokked it yet.
Permalink to Today's News | Recent News | Today's Java News on Cafe au Lait | The Cafes | Older News | E-mail Elliotte Rusty Harold
Selected content that might have some relevance or interest for this site's visitors:
You can also see previous recommended reading or subscribe to the recommended reading RSS feed if you like.
Version 2.2 of XQilla, an open source XQuery 1.0 and XPath 2.0 library and command line utility written in C++, has been released. XQilla is implemented on top of Xerces-C++ and derives from Pathan. Version 2.0 implements the DOM 3 XPath API, and conforms to the both the XQuery and XPath 2.0 recommendations. "This release adds a debugger and debugging API, partial support for XSLT 2.0, and a prototype implementation of higher order functions for XQuery....Although it is possible to run a number of complex transformations there are significant features missing from the implementation, including xsl:include, xsl:import, xsl:output, xsl:result-document, and xsl:sort. If there are any developers interested in helping complete the XSLT 2.0 support, please get in touch with us at xqilla-devel@lists.sourceforge.net." XQilla is published under the Apache 2.0 licence.
The Apache Commons Team has released Digester 2.0, a SAX-based XML to object mapper, designed primarily for parsing XML configuration files though it has other uses too. Digester is configured through an XML to Java object mapping module, which triggers actions whenever a pattern of nested XML elements is recognized. Versionb 2.0 now supports W3C XML Schema validation and XInclude. However it is backwards incompatible with Digester 1.x due to other internal cleanups. The Commons Projects has also released version 1.8.1, a compatible bug fix release.
In the unlikely event anyone needs yet another way to listen to me blather, I now have a Twitter feed.
The W3C Web Content Accessibility Guidelines (WCAG) Working Group has published the finished Recommendation of the Web Content Accessibility Guidelines 2.0. "Web Content Accessibility Guidelines (WCAG) 2.0 covers a wide range of recommendations for making Web content more accessible. Following these guidelines will make content accessible to a wider range of people with disabilities, including blindness and low vision, deafness and hearing loss, learning disabilities, cognitive limitations, limited movement, speech difficulties, photosensitivity and combinations of these. Following these guidelines will also often make your Web content more usable to users in general. WCAG 2.0 success criteria are written as testable statements that are not technology-specific. "
Bare Bones Software has released version 9.1 of BBEdit, my preferred text editor on the Mac, my favorite XML editor on any platforms, what I'm using to type these very words.
Version 9.1 "now includes a copy of Consolas Regular, an excellent antialiased code editing font. This font is licensed from Ascender Corporation for use only with BBEdit."
New copies cost $125.Upgrades from 9.0 are free.
Mac OS X 10.4 or later is required.
The W3C Web API Working Group has published the finished recommendation
of
Element Traversal Specification. "This specification defines the ElementTraversal interface, which allows script navigation of the elements of a DOM tree, excluding all other nodes in the DOM, such as text nodes. It also provides an attribute to expose the number of child elements of an element. It is intended to provide a more convenient alternative to existing DOM navigation interfaces, with a low implementation footprint."
ElementTraversal provides some extra properties/methods for navigating only through elements, while ignoring text and white space:
firstElementChildlastElementChildpreviousElementSiblingnextElementSiblingchildElementCountThis makes it easier to process record-like XML, but inappropriate for reading documents with mixed content. It may be mildly helpful if it achieves broad adoption in browsers. However at this point adding more methods to DOM is just putting lipstick on a pig. Until we admit that DOM was a mistake, we can't really begin to address our problems.
The W3C Scalable Vector Graphics Working Group has posted the finished recommendation of Scalable Vector Graphics (SVG) Tiny 1.2. SVG Tiny is a "a language for describing two-dimensional vector and mixed vector/raster graphics in XML. Its goal is to provide the ability to create a whole range of graphical content, from static images to animations to interactive Web applications. SVG 1.2 Tiny is a profile of SVG intended for implementation on a range of devices, from cellphones and PDAs to desktop and laptop computers, and thus includes a subset of the features included in SVG 1.1 Full, along with new features to extend the capabilities of SVG. Further extensions are planned in the form of modules which will be compatible with SVG 1.2 Tiny, and which when combined with this specification, will match and exceed the capabilities of SVG 1.1 Full."
Michael Kay has released versions 9.1.0.5 of Saxon, his XSLT 2.0 and XQuery processor for Java and .NET. This is a bug fix release.
Saxon is published in two versions for both of which Java 1.4 or later (or .NET) is required. Saxon 9.1B is an open source product published under the Mozilla Public License 1.0 that "implements the 'basic' conformance level for XSLT 2.0 and XQuery." Saxon 9.1 SA is a £300.00 payware. According to Kay,
The most obvious difference between Saxon-SA and Saxon-B is that Saxon-SA is schema-aware: it allows stylesheets and queries to import an XML Schema, to validate input and output trees against a schema, and to select elements and attributes based on their schema-defined type. Saxon-SA also incorporates a free-standing XML Schema validator.
In addition Saxon-SA incorporates some advanced extensions and optimizations not available in the Saxon-B product:
Saxon-SA is able to compile XQuery code directly into Java classes.
Saxon-SA has an advanced optimizer which recognizes joins in XPath expressions, XQuery FLOWR expressions, and in XSLT templates (nested
xsl:for-eachinstructions). Whereas Saxon-B always implements these as nested loops, Saxon-SA uses a variety of strategies including indexes and hash joins. This can give dramatic improvements in execution time for large documents: some of the queries in the XMark benchmark improve by a factor of 300 (from 16 seconds to 45 milliseconds) to process a 10Mbyte source file.Saxon-SA has a facility to process large documents in streaming mode. This enables documents to be handled that are too large to hold in memory (it has been tested up to 20Gb).
Additional extensions available in Saxon-SA include a try/catch capability for catching dynamic errors, improved error diagnostics, support for higher-order functions, and additional facilities in XQuery including support for grouping, advanced regular expression analysis, and formatting of dates and numbers.
Planamesa Software has released NeoOffice/J 2.2.5 patch 5, a Mac port of OpenOffice 2.1 using a Java-based GUI. This is a bug fix release. Mac OS X 10.3.9 or later is required.
The Mozilla Project has released Firefox 2.0.0.20 to fix a security bug that apparently only affects Windows. other users don't need to upgrade.
The Mozilla Project has released Firefox 3.0.5 and 2.0.0.19 and SeaMonkey 1.1.14 to fix various security bugs. All users should upgrade.
There are a couple of other improvements of note in Firefox 3.0.5. Most interestingly, it no longer requires you to agree to a license on installation. Open source software doesn't need that and shouldn't do it. AppleScript was supposed to be at least marginally fixed in this release, but that doesn't seem to have happened so I'm still on 2.0.0.19 until at least the next release. :-(
The W3C XQuery working group has published an updated working draft of XQuery 1.1 and XQuery 1.1 Use Cases. New features since XQuery 1.0 include:
The W3C XQuery working group has posted new working drafts of XQuery Scripting Extension 1.0 and XQuery Scripting Extension 1.0 Use Cases:
The principal extensions introduced by XQSE are as follows:
An ordering is defined on the evaluation of certain kinds of XQuery expressions. An implementation may use any execution strategy as long as the result complies with the semantics of this ordering. The ordering is defined in a way that places no additional constraints on the evaluation of any valid XQUF or [XQuery 1.0] expressions.
Expressions in XQSE may have side-effects that are visible to subsequent expressions (according to the above ordering of evaluation).
XQSE introduces the following new kinds of expressions:
Apply (semicolon) expressions
Blocks
Assignment expressions
Exit expressions
While expressions
XQSE relaxes the constraints on the placement of updating expressions, so that a non-empty XDM instance can be returned by an expression as well as a non-empty pending update list. In order to allow this, new rules to determine the category and resulting pending update list are added to every existing expression.
XQSE introduces a new expression category called sequential expressions. The simple and updating expression categories introduced by XQUF are retained, but the vacuous expression category no longer has significance. Informal definitions of all the expression categories are summarized here. For normative definitions of the categories, see the "Category Rules" that are specified for each kind of expression in [2.3 New Kinds of Expressions] and [2.4 Changes to Existing Expressions].
[Definition: An updating expression is an expression that can return a non-empty pending update list.] Updating expressions include insert, delete, replace, rename, and calls to updating functions, as well as certain other expressions that contain nested updating expressions. An updating expression may return a non-empty XDM instance as well as a non-empty pending update list - however note that it does not actually apply any updates.
[Definition: A sequential expression is an expression that can have side effects other than constructing a new node or raising an error.] Side effects include applying updates to an XDM instance, altering the dynamic context, or affecting the flow of control. Sequential expressions include apply expressions, assignment, exit, while, and calls to sequential functions, as well as certain other expressions that contain nested sequential expressions. The side effects of a sequential expression are immediately effective and are visible to subsequent expressions. Because of their side effects, sequential expressions must be evaluated in a well-defined order. In addition to its side effects, a sequential expression may return a non-empty XDM instance, but it never returns a non-empty pending update list.
[Definition: A simple expression is an expression that is neither an updating expression nor a sequential expression.] A simple expression may return an XDM instance, and it may construct a node or raise an error.
The classification of each expression into one of the above categories is performed by static analysis. For each kind of expression, XQSE provides rules that specify the required categories of the operand expressions and the category of the expression itself.
Automattic has released Wordpress 2.7.0 an open source (GPL) blog engine based on PHP and MySQL. Notable new features in this release include a radically revised user interface and more automated upgrades to future versions. I'm going to try to manually upgrade my sites now. Wish me luck.
Google has released Chrome 1.0, an open source WebKit-based browser for Windows. Annoyingly the website won't let you download Chrome on a Mac. Hasn't Google heard of Parallels, VMWare, and Bootcamp? URIs should not return different content based on the client's platform. Doing so is a major violation of the web architecture. Also, although Chrome claims to be open source (and probably is), there's an annoying page of legalese you have to agree to before you can download it. Would someone please compile it from source and post a no-contract version that can be downloaded on any platform?
On the positive side, Chrome actually asks you who you want your default search engine to be when you start up, something I don't recall any other browser doing. Honestly, this may be going a little too far in the direction of even-handedness. Not all search engines are created equal. By all means let users change their default search engine if they wish, but I don't see anything wrong with simply setting Google as the default and not bothering users about that unless they care. Google's the market leader in search for good reason: they do it way better than anyone else. Choosing the best option for your customers is a good thing, even when the best option is yourself.
The W3C has published the first working draft of rdf:text: A Datatype for Internationalized Text:
The datatype identified by the URI http://www.w3.org/1999/02/22-rdf-syntax-ns#text (abbreviated rdf:text) allows for the representation of internationalized text strings. In addition to the RIF and OWL specifications, this datatype is expected to supersede RDF's plain literals with language tags, cf. [5], which is why this datatype has been added into the rdf: namespace.
Value Space. The value space of rdf:text is the set of all pairs of the form ( "text" , "lang" ), where "text" is a string and "lang" is either the empty string "" or a lowercase language tag.
Lexical Space. A lexical value of rdf:text is a string "val" that contains at least one @ character (U+40) and that satisfies the following condition:
Let i be the position of the last @ (U+40) character in "val", and let "abc" and "tag" be the substrings of "val" containing the characters up to and after position i (noninclusive), respectively. Then ,"tag" MUST be either empty or a valid language tag.
Each such lexical value is assigned a data value ( "abc", "lc-tag" ), where "lc-tag" is the string "tag" converted to lowercase.
Editor's Note: Open Issues: The definition of the set of characters, particularly the fact that it is infinite, as well as the compatibility with XML strings - whether the string part of the lex & val space should be the same as xs:string - are still under discussion.Lexical value "Family Guy@en" is mapped to the data value ( "Family Guy" , "en" ), and "Family Guy@" is mapped to ( "Family Guy" , "" ). Furthermore, "Family Guy" is not a valid lexical value of rdf:text because it does not contain the @ (U+40) character.
The W3C has published the candidate recommendation of the CSS Marquee Module Level 3. "When documents (e.g., HTML) are laid out on visual media (e.g., screen or print) and the contents of some element are too large for a given area, CSS allows the designer to specify whether and how the overflow is displayed. One way, available on certain devices, is the “marquee” effect: the content is animated and moves automatically back and forth. This module defines the properties to control that effect."
The Call for Papers for Balisage 2009 has been posted. "We welcome papers about topic maps, document modeling, markup of overlapping structures, ontologies, metadata, content management, and other markup-related topics at Balisage. If you want to talk, in detail XML, XSL, SGML, LMNL, XSL-FO, XTM, RDF, XQuery, Topic Maps, SVG, MathML OWL, UBL, XSD, TexMECS, RNG, or any other markup-related topic, we urge you to participate in Balisage." Paper Submissions are due by April 24. The conference takes place August 11-14.
In addition the official conference will be proceeded by a one day "International Symposium on Processing XML Efficiently: Overcoming Limits on Space, Time, or Bandwidth" on the 10th.
The W3C Core Working group has broken faith with the XML community by publishing an XML 1.0, fifth edition spec that is incompatible with all previous versions. The grammar has changed and previously malformed documents are suddenly well-formed. Existing parsers cannot handle the syntax defined by this edition. XML 1.1 has failed so now the W3C is trying to rewrite history and pretend that this is what they meant all along. (If that were true, why did we waste so much time on XML 1.1?) Apparently stability of standards is no longer a virtue at the W3C. This is even worse than the XML 1.1 debacle. At least there, the W3C admitted they were pushing a new, incompatible version; and gave users a hook to tell which version they were receiving. Now we don't even have that. As if XML weren't already confusing enough for people who don't spend 60 hours a week thinking about this stuff. Now we have to explain that the well-formedness of a document depends on which version of which parser is being used, and which edition of XML the parser implements, and no, there's nothing in the document to tell you which version you should be using.
The ostensible goal of this edition is to improve internationalizability of XML by enabling additional characters that might someday be needed by someone, somewhere to name an element or attribute. (Byzantine Greek musical symbols anyone?) In practice, though, I think fear will do the opposite. The real rules are now far too confusing and far too poorly labeled for any person to follow given the unadvertised version conflicts. The quick and dirty reality is now going to be, "Name everything with Latin-1". If you go beyond that, you're taking your chances that what works with your parser may not work with others'. Great for Western Europeans (except Greeks) and Americans; sucks for everybody else.
Perhaps the time has come to say that the W3C has outlived its usefulness. Really, has there been any important W3C spec in this millennium that's worth the paper it isn't printed on? The W3C almost killed HTML, and browser vendors have effectively abandoned it. Between schemas and XML 1.0 5th edition, they same intent on doing the same thing to XML. And don't get me started on the huge amount of effort and brain power being wasted on counting semantic angels on top of a URI-named pin. XSLT 2 and XPath 2 were still-born, and the much more pragmatic XSLT 1.1 was killed. Maybe XQuery, but even that is far more complex and less powerful than it should be due to an excessive number of use cases and a poorly designed schema type system. I think we might all be better off if the W3C had declared victory and closed up shop in 2001.