View Michael Scherotter's profile on LinkedIn

Browse by Tags

Simple Silverlight SEO with ASP.Net and XSLT
03 October 07 12:20 PM | Synergist | 0 Comments   

A common practice with Rich Interactive Applications (RIAs) is to expose the text as hidden DIV section in on the same page as the Silverlight control.  I have crafted a page with a Silverlight application that has a unique word on it that is picked up by Google's search engine.  When search crawlers see the page, they don't see the Silverlight XAML but they do see the XHTML that is generated by transforming the XAML into XHTML.  Using the ASP.Net <asp:Xml> element and specifying an XSL Transformation that does this translation:

<div id="SLHost">

    <asp:Xml ID="XHTML" runat="server" DocumentSource="seo.xaml" TransformSource="XAML2XHTML.xslt" EnableViewState="False"/>

    <script type="text/javascript">

        createSilverlight();

    </script>

</div>

Try using this technique for your Silverlight applications running ASP.Net.  Here is how the content is transformed:

  • <Canvas> elements are turned into <div> tags
  • <TextElement> elements are turned into <div> tags with the text inside
  • <Run> elements are turned into <span> tags
  • <Image> elements are turned into <img> tags
  • <MediElement> elements are turned into <a href> hyperlinks.

It doesn't produce pretty XHTML but search engines don't care about that.  take a look at the XSLT transform and see how simple it actually is.  Using this technique, when the XAML changes, the plain-text XHTML content changes as well.

Filed under: , ,
OneNote XML uses CDATA for HTML
06 July 07 10:51 AM | Synergist | 2 Comments   

If you look at the XML generated by the OneNote 2007 API, you will notice that the text outline sections are all escaped with CDATA[] elements.  This, in my opinion is bad form.  I am working on transforming the OneNote XML to Silverlight XAML using XSLT and having that portion of the XML escaped makes it more difficult to parse and transform.  My guess is that it's like this because much of the HTML is copied from web browsers and HTML is not always well-formed XML (XHTML is).  Coming from MindManager that always used well-formed XHTML for note in the XML, I would like much more usable XML from OneNote 2007. 

Instead of this:

<one:OE creationTime="2006-01-25T02:41:25.000Z" lastModifiedTime="2006-03-02T22:01:00.000Z" objectID="{B64DE6F4-60DB-0E93-07D6-DBBDCDBF80A3}{77}{B0}" alignment="left">

<one:T>

<![CDATA[In addition to features covered in the <a

href="onenote:Getting%20Started%20with%20OneNote.one">Getting started</a> section, OneNote has additional tools that can help you in several activities. <span

style='font-weight:bold'>Click these links</span> to explore. Use the <span

style='font-weight:bold'>Back arrow button</span> on the toolbar to return to this page:]]>

</one:T>

</one:OE>

Use this:

<one:OE creationTime="2006-01-25T02:41:25.000Z" lastModifiedTime="2006-03-02T22:01:00.000Z" objectID="{B64DE6F4-60DB-0E93-07D6-DBBDCDBF80A3}{77}{B0}" alignment="left">

<one:T>

In addition to features covered in the <a

href="onenote:Getting%20Started%20with%20OneNote.one">Getting started</a> section, OneNote has additional tools that can help you in several activities. <span

style='font-weight:bold'>Click these links</span> to explore. Use the <span

style='font-weight:bold'>Back arrow button</span> on the toolbar to return to this page:

</one:T>

</one:OE>

Here are two questions:

  1. Is the HTML in OneNote 2007's CDATA sections well-formed XML?
  2. Does anyone have any cool tricks to convert non-well-formed HTML to well-formed XHTML?
Why XML in Silverlight is Significant
23 May 07 02:54 PM | Synergist | 0 Comments   

I have been working with XML for most of my career, from developing a CAD application to my roles at Mindjet to my new role at Microsoft talking about Silverlight.  In this career, I have given numerous talks about the relevance of XML and to be susinct, I have it boiled down to this:

XML is about Partnerships

Whether that partnership are one-to-one or one-to-many, in my opinion, XML is the right technology to use when you want systems to interoperate with eachother.  One type of XML is called XSLT, which is a transformational XML language that defines how one XML set of data transforms to another, so given this XML fragment of Mindjet MindManager XML:

<ap:Topic xmlns:ap="...">
<ap:Text PlainText="Silverlight Rules"/>
</ap:Topic>

this XSLT fragment:
<xsl:template match="ap:Topic" xmlns:xslt="..." xmlns:ap="...">
<TextBlock Text="{ap:/Text/@PlainText}" xmlns="..."/>
</xsl:template>

Produces this Silverlight XAML:

<TextBlock Text="Silverlight Rules" xmlns="..."/>

The significance of this is that you can write an XSL transform from almost any XML language to another: THIS IS BIGThat means that if you have content in one XML format, you can transform it to another.  A few years ago, I did a simple demo (that only works on Internet Explorer) on my personal website that used XSLT to make a browser for sketches that I did over the years (click on the about link on top to see how it was done).  When I was at Mindjet, I created numerous demos on the Mindjet Labs that used XML and XSLT to get data into and out of MindManager.  As you can see, I love working with XSLT!

When I first heard about XAML and Silverlight last year, I started getting very excited about the possibilites that it could enable especially with transforming data from MindManager's XML to XAML.  One of the XML languages that I started working with at Mindjet was the RibbonX XML for Office 2007 Ribbon UI for Word 2007.  Before I joined Microsoft, I started thinking about how I could transform RibbonX XML to Silverlight's XML (XAML) to present a website's user interface.  This was a fun exercise for me and I really learned Silverlight's XAML.  What I created from that was http://xmldocs.net.  I am now seeing others that are using Silverlight to render all types of XML data, like XPS files.  This is why I believe that Silverlight's XML data model is significant. Now, the next thing that I want to look at Popfly

Links:

What XML do you want to see in Silverlight?  To get some ideas, look at all of the web services on Programmable Web (most web services are XML-based).

Search

Go

This Blog

Tags

Archives

Links

Syndication