WAResponse
>>beXML
contentType := contentType copyReplaceAll: '/html' with: '/xml'.
But in 2.9 Alpha 4 some problems remain which are just as obvious:
WASession
>>updateRoot: anHtmlRoot
self application updateRoot: anHtmlRoot.
anHtmlRoot meta contentType: self application contentType.
anHtmlRoot meta contentScriptType:
WAMimeType textHtml.
anHtmlRoot htmlAttributes
at: 'name' put: 'updateRoot'.
anHtmlRoot beXhtml10Strict.
anHtmlRoot title: 'Seaside'
" on a first pass I simply flip 'textHtml' method to a new textCurl' method while trying to track down why all contetn remained HTML even after removing the HTML classes (that was the preferences dict in WAEntryPont ) "
My class WACurlRoot is forced to implement a truly meaningless message
>>beXhtml10Strict
as an empty stub
" if you think any and all
output can be XML you have drunk too much of that X-Kool-Aid "
The far more serious issue is attributes: this will imapct sem web in Curl output.
Semweb for XHTML probably means RDFa or rdf in attributes. Curl has always had metadata for some macros, but other procedures have variable number options. Options in Curl are not XML attributes. They are sometimes very similar.
<br>
{br}
<a HREF = "some URL" target = "_blank">title</a>
{link target = "_blank", href = {url "some URL}, title}
One of the first problems was a method that was forcing tags to uppercase. Ok in XHTML; fatal in Curl.
Notice the comma delimiter in Curl for options.
<h1 level = "1">header</h1>
{heading level = 1,
header}
<div/> has no couner-part in vanilla Curl.
<span/> has no counter-part in vanilla Curl.
Curl has no need of <script> as it is itself script of mime type "text/vnd.curl"
I hope this helps shed some light on the challenges on non-SGML type web content markup.
Note: Curl is only hierarchical when output in declarative fashion and even then declarative mode is not strictly hierarchical for Curl-as-data-format.
The counter-parts to <var/> in Curl might be
{let myvar = 42}
{set myvar = 84}
Curl is typed if you declare it as typed but has an any type so in that respect closer to Smalltalk than Strongtalk and JavaScript.
{let myvar:int = 21}
The counter-part to <script/> might
be
{define-proc public {some-proc}:any
{return 42}
}
Most anything missing can be mimiced using Curl macros.
<div/>
{mdiv } || div is a reserved word
<span/>
{span }