Why XML in Silverlight is Significant
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 BIG! That 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 https://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:
- Silverlight Ribbon UI for websites: https://xmldocs.net
- Silverlight Map MindManager Map Creator: https://blogs.msdn.com/synergist/pages/silverlight-map.aspx (with source code)
- Silverlight to XPS: https://blogs.msdn.com/delay/archive/2007/05/22/lighting-up-the-xml-paper-specification-proof-of-concept-xps-reader-for-silverlight.aspx
- Journal Browser (Internet Explorer-only) https://charette.com/Journals/index.html
- Silverlight development community: https://silverlight.net
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).