Hi,
I havent seen the JXCSS library before, i'll have a look at that when
I get time.
I can't remember where I got this format of XML from, I think it was a
W3C mailing list, but nothing ever came of it.
Assuming an XCSS file like:
<?xml version="1.0" encoding="UTF-8"?>
<style type="text/xcss">
<rule>
<selectors>
<selector element="" class="theme-href" pseudo=""/>
</selectors>
<properties>
<property name="color">#fff</property>
<property name="background-color">#fff</property>
<property name="margin-left">1px</property>
<property name="margin-right">2px</property>
</properties>
</rule>
<rule>
<selectors>
<selector element="" class="theme-href" pseudo="">
<selector element="a" class="" pseudo="link"/>
</selector>
</selectors>
<properties>
<property name="background-color">#fff</property>
<property name="color">#fff</property>
</properties>
</rule>
<rule>
<selectors>
<selector element="" class="theme-href" pseudo="">
<selector element="a" class="" pseudo="visited"/>
</selector>
</selectors>
<properties>
<property name="background-color">#fff</property>
<property name="color">#fff</property>
</properties>
</rule>
<rule>
<selectors>
<selector element="" class="theme-para" pseudo=""/>
</selectors>
<properties>
<property name="background-color">#fff</property>
<property name="color">#fff</property>
</properties>
</rule>
</style>
XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" method="text"/>
<xsl:template match="[EMAIL PROTECTED] = 'text/xcss']">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="rule"><xsl:if test="count(
properties/property[text() != ''] )">
<xsl:apply-templates select="selectors/selector"/>{
<xsl:apply-templates select="properties/property"/>
}
</xsl:if></xsl:template>
<xsl:template match="selector">
<xsl:value-of select="@element"/>
<xsl:if test="@class != ''">.<xsl:value-of select="@class"/></xsl:if>
<xsl:if test="@pseudo != ''">:<xsl:value-of
select="@pseudo"/></xsl:if>
<xsl:text> </xsl:text>
<xsl:apply-templates select="selector"/>
<xsl:if test="position() != last()">, </xsl:if>
</xsl:template>
<xsl:template match="property">
<xsl:if test=". != ''"><xsl:value-of select="@name"/>:
<xsl:value-of select="."/>;
</xsl:if></xsl:template>
</xsl:stylesheet>
I have some perl scripts that will do a one-off conversion from CSS to
XCSS (if thats what the above is) if you want a look.
Steve Metcalfe
On 12/01/06, Stephen Winnall <[EMAIL PROTECTED]> wrote:
> Thanks, Chris. I find your solution rather clever. It avoids the
> necessity of an XCSS altogether,
> doesn't it? I like that.
>
> Steve
>
> On 12 Jan 2006, at 22:21, Chris Marasti-Georg wrote:
>
> > source.css:
> >
> > <css>
> > whatever {
> > css: source;
> > in: here;
> > }
> > and {
> > an: <i18n:tag here=""/>
> > }
> > </css>
> >
> > ie.xslt:
> >
> > <xsl:transform...>
> > <xsl:template match="/css">
> > <css>
> > <xsl:copy-of select="*">
> > some {
> > ie: specific;
> > css: here;
> > }
> > with {
> > an: <i18n:tag here=""/>
> > }
> > </css>
> > </xsl:template>
> > </xsl:transform>
> >
> > css.xslt:
> >
> > <xsl:transform>
> > <xsl:template match="/css">
> > <xsl:value-of select="."/>
> > </xsl:template>
> > </xsl:transform>
> >
> > Sitemap (pseudo):
> >
> > <map:match *.css>
> > <map:generate source.css/>
> > if browser is standards- and security-challenged {
> > <map:transform ie.xslt/>
> > }
> > <map:transform I18N/>
> > <map:transform css.xslt/>
> > <map:serialise text/>
> > </map:match>
> >
> >> -----Original Message-----
> >> From: Stephen Winnall [mailto:[EMAIL PROTECTED]
> >> Sent: Thursday, January 12, 2006 3:49 PM
> >> To: [email protected]
> >> Cc: Bob Harner; Chris Marasti-Georg
> >> Subject: Re: XCSS?
> >>
> >> Thanks to Bob and Chris for their feedback.
> >>
> >> However, my question is not how to serve up different CSS
> >> files depending on the target browser. What I would like to
> >> do is create those different CSS files from a single source
> >> (e.g. a transformer creates different CSS files from a common
> >> source depending on what the target browser is). It seems to
> >> me that it would be trivial if CSS had an XML syntax: my
> >> questions are:
> >>
> >> 1) is there a suitable XML DTD or schema for something (let's call it
> >> XCSS) which is 1-to-1
> >> mappable to CSS?
> >> 2) does an appropriate transformation (or serialisation) from
> >> XCSS to CSS exist?
> >>
> >> One answer to 1) is "yes, see JXCSS". An answer to 2) is what
> >> I am looking for.
> >>
> >> The pipeline should look something like the following (if
> >> you'll excuse the meta-syntax):
> >>
> >> match *.css
> >> generate XCSS from a single source
> >> if browser is standards- and security-challenged {
> >> transform the XCSS stream to suit
> >> }
> >> transform for I18N
> >> transform from XCSS to CSS
> >> serialise using TextSerializer
> >>
> >> or perhaps the serialisation could go direct from XCSS rather
> >> like FO or POI.
> >>
> >> The XHTML should contain no <style> tags to preserve SoC. In
> >> my XHTML, all I want to have is
> >>
> >> <link href="my.css" ...>
> >>
> >> Steve
> >>
> >> On 12 Jan 2006, at 19:37, Stephen Winnall wrote:
> >>
> >>> I am setting up a website using Cocoon and want to generate
> >> XHTML and
> >>> use CSS to handle the presentation. Like everyone else I am being
> >>> bitten by the fact that 90% of all browsers conform to the CSS
> >>> standard, but the browser that 90% of the users use does not :-(
> >>>
> >>> (I think) I have managed to banish all the browser
> >> dependencies (for
> >>> my site, at least) into the CSS file and I have a clean SoC-like
> >>> separation of content and presentation. So what I would now
> >> like to do
> >>> is use Cocoon to generate different CSS files to accommodate MSIE.
> >>> I would also like to handle some I18N issues I have in the
> >> CSS files.
> >>>
> >>> Does anyone know of a way of writing something that could be called
> >>> "XCSS", i.e. CSS written in an XML syntax, which can be
> >>> transformed/serialised into proper CSS?
> >>>
> >>> Apart from passing remarks (including one from the maestro at
> >>>
> >>> http://mail-archives.apache.org/mod_mbox/cocoon-dev/200003.mbox/%
> >>> [EMAIL PROTECTED]
> >>>
> >>> ) I have been unable to find any references to much like
> >> this. I have
> >>> spent about some time trawling Google, but XSL and CSS are not good
> >>> search terms (they throw up too many results), and XCSS
> >> doesn't throw
> >>> up anything conclusive, although the results do confirm
> >> that I am not
> >>> the first person who wants to do this.
> >>>
> >>> The project JXCSS does the other thing, i.e. convert CSS into XCSS,
> >>> but the documentation says that there is no transformation
> >> available
> >>> to produce CSS from
> >>> XCSS:
> >>>
> >>> "Stylesheets need to be written to generate and
> >> pretty-print CSS
> >>> source code"
> >>>
> >>> I will admit to being reluctant to write such a stylesheet myself
> >>> because I am already severely sidetracked doing this website, and I
> >>> need to get back to my other tasks.
> >>>
> >>> I would be grateful for any hints on where to look. And if
> >> there is a
> >>> Better Way, please let me know.
> >>>
> >>> Steve
> >>>
> >>>
> >>>
> >>>
> >> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>> For additional commands, e-mail: [EMAIL PROTECTED]
> >>>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>