I was reading a post by Rory Blyth where he points to Steve Maine's explanation of the benefits of Prothon (an object oriented programming language without classes). He writes

One quote from Steve's post that has me thinking a bit, though, is the following:

The inherent extensibility and open content model of XML makes coming up with a statically typed representation that fully expresses all possible instance documents impossible. Thus, it would be cool if the object representation could expand itself to add new properties as it parsed the incoming stream.

I can see how this would be cool in a "Hey, that's cool" sense, but I don't see how it would help me at work. I fully admit that I might just be stupid, but I'm honestly having a hard time seeing the benefit. Right now, I'm grabbing XML in the traditional fashion of providing the name of the node that I want as a string key, and it seems to be working just fine.

The problem solved by being able to dynamically add properties to a class in the case of XML<->object mapping technologies is that it allows developers to program against aspects of the XML document in a strongly typed manner even if they are not explicitly described in the schema for the XML document.

This may seem unobvious so I'll provide an example that illustrates the point. David Orchard of BEA wrote a schema for the ATOM 0.3 syndication format. Below is the fragment of the schema that describes ATOM entries

 <xs:complexType name="entryType">
  <xs:sequence>
   <xs:element name="title" type="xs:string"/>
   <xs:element name="link" type="atom:linkType"/>
   <xs:element name="author" type="atom:personType" minOccurs="0"/>
   <xs:element name="contributor" type="atom:personType" minOccurs="0" maxOccurs="unbounded"/>
   <xs:element name="id" type="xs:string"/>
   <xs:element name="issued" type="atom:iso8601dateTime"/>
   <xs:element name="modified" type="atom:iso8601dateTime"/>
   <xs:element name="created" type="atom:iso8601dateTime" minOccurs="0"/>
   <xs:element name="summary" type="atom:contentType" minOccurs="0"/>
   <xs:element name="content" type="atom:contentType" minOccurs="0" maxOccurs="unbounded"/>
   <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
  <xs:attribute ref="xml:lang" use="optional"/>
  <xs:anyAttribute/>
 </xs:complexType> 

The above schema fragment produces the following C# class when the .NET Framework's XSD.exe tool is run with the ATOM 0.3 schema as input.

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://purl.org/atom/ns#")]
public class entryType {
   
    /// <remarks/>
    public string title;
   
    /// <remarks/>
    public linkType link;
   
    /// <remarks/>
    public personType author;
   
    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("contributor")]
    public personType[] contributor;
   
    /// <remarks/>
    public string id;
   
    /// <remarks/>
    public string issued;
   
    /// <remarks/>
    public string modified;
   
    /// <remarks/>
    public string created;
   
    /// <remarks/>
    public contentType summary;
   
    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("content")]
    public contentType[] content;
   
    /// <remarks/>
    [System.Xml.Serialization.XmlAnyElementAttribute()]
    public System.Xml.XmlElement[] Any;
   
    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute(Namespace="http://www.w3.org/XML/1998/namespace")]
    public string lang;
   
    /// <remarks/>
    [System.Xml.Serialization.XmlAnyAttributeAttribute()]
    public System.Xml.XmlAttribute[] AnyAttr;

}

As a side note I should point out that David Orchard's ATOM 0.3 schema is invalid since it refers to an undefined authorType so I had to remove the reference from the schema to get it to validate.

The generated fields highlighted in bold show the problem that the ability to dynamically add fields to a class would solve. If programming against an ATOM feed using the above entryType class then once one saw an extension element, you'd have to fallback to XML processing instead of programming using strongly typed constructs.  For example, consider Mark Pilgrim's RSS feed which has dc:subject elements which are not described in the ATOM 0.3 schema but are allowed due to the existence of xs:any wildcards. Watch how this complicates the following code which prints the title, issued date and subject of each entry.

foreach(entryType entry in feed.Entries){

  Console.WriteLine("Title: " + entry.title);
  Console.WriteLine("Issued: " + entry.issued);

  string subject = null;

 //find the dc:subject
  foreach(XmlElement elem in entry.Any){
   if(elem.LocalName.Equals("subject") &&
      elem.NamespaceUri.Equals("http://purl.org/dc/elements/1.1/"){
     subject = elem.InnerText;
     break;
   }
  }

  Console.WriteLine("Subject: " + subject); 
 
 }

As you can see, one minute you are programming against statically and strongly typed C# constructs and the next you are back to checking the names of XML elements and programming against the DOM. If there was infrastructure that enabled one to dynamically add properties to classes then it is conceivable that even though the ATOM 0.3 schema doesn't define the dc:subject element one would still be able program against them in a strongly typed manner in generated classes. So one could write code like

foreach(entryType entry in feed.Entries){

  Console.WriteLine("Title: " + entry.title);
  Console.WriteLine("Issued: " + entry.issued); );
  Console.WriteLine("Subject: " + entry.subject);  
 }

Of course, there are still impedance mismatches to resolve like how to reflect namespace names of elements or make the distinction between attributes vs. elements in the model but having the capabilities Steve Maine describes in his original post would improve the capabilities of the XML<->Object mapping technologies that exist today.


 

Categories: XML

I just found the following post in Andrew Watt's blog

Beta of RSS Bandit Available - but doesn't work, at least for me

Dare Obasanjo has announced, RSS Bandit 1.2.0.106 (beta) available, the availability for download of a beta of RSS Bandit. The download is available from Sourceforge.net.

Installation was smooth but the beta unfortunately seems not to be able to access any feeds, whether RDF or RSS. Sometimes it fails with an exception, sometimes silently. I don't know whether it is because the uninstall of the previous version didn't clean up fully after itself or not (it didn't) or for some other reason.

The end result, however, is that RSS Bandit is broken meantime failing to access any RSS or RDF feed I have pointed it at.

Posted by Andrew Watt at 04:09 PM | TrackBack (0)
The point of betas is to gather feedback about possible issues with the software before a release. If you are a beta user and would like to provide feedback you can file bugs in the bug database on SourceForge, send a message to the mailing list or discussion board
 
It may seem that like this is too much trouble in which case you can blog about your woes and Torsten or I will eventually find your post. However it would be much appreciated if you provided a way to follow up and get more details about your problem. The above post by Andrew Watt is an example of a post we can't do much with since he has no contact information on his blog and it doesn't support comments.  
 
Thanks to all the folks out there using RSS Bandit and helping us make it better. You all rock.

 

Categories: RSS Bandit

March 26, 2004
@ 06:08 PM

This month's issue of The Source magazine asks the following question on it's cover, “Are Rappers the New Target of America's Criminal Justice System?”. In article entitled “Operation Lockdown” there is a spread on various rappers who've had trouble with the law. They include

  1. Jamal Barrow aka Shyne: Assault, Gun Possesion and Reckless Endangerment, sentenced to 10 years at the Clinton Correctional Facility in Dannemora, New York.

  2. Corey Miler aka C-Murder: Second Degree Murder, awaiting sentencing but facing a mandatory life sentence.

  3. Michael Tyler aka Mystikal: Extortion and Sexual Battery, sentenced to 6 years in prison.

  4. Ricky Walters aka Slick Rick: Attempted Second Degree Murder, Self-Deportation and Illegal Reentry, served 5 years for the former and 17 months in an INS detention center for the latter.

  5. John Austin aka Ras Kass: Driving Under the Influence sentenced to 16 months at the California State Prison in Corcoran.

  6. Dwight Grant aka Beanie Sigel: Attempted Murder and Gun Possession, awaiting trial.

  7. Chi-Ali Griffith: Murder and Gun Possesion, awaiting trial after being on the run for two years and being profiled on America's Most Wanted

  8. John Fortè: Drug Possession with Intent to Distribute, sentenced to 14 years.

  9. Patrick Houston aka Project Pat: Aggravated Robbery and Parole Violation, sentenced to 51 months.

  10. Warren McGlone aka Steady B and Chris Rony aka Cool C: Murder and Armed Robbery, Cool C was sentenced to death by lethal injection while Steady B was sentenced to life without parole

  11. Chad Butler aka Pimp C from the group UGK: Aggravated Assault with a Weapon, sentenced to 8 years.

  12. Marion Knight aka Suge Knight (CEO of Death Row Records): Firearm Trafficking, Assault, Parole Violation and Other Charges, currently serving 10 months for parole violation

  13. Shyheim: Armed Robbery and Gun Possesion, sentenced to two years.

  14. J-Dee of Da Lench Mob: Murder, sentenced to 25 years-to-life.

  15. Ronald Blackwell aka Spigg Nice from the group Lost Boyz: Conspiracy to Commit Bank Robbery, sentenced to 37 years

  16. Marvin Bernard aka Tony Yayo from the group G-Unit: Gun Possession and Probation Violation, served a year.

  17. Peedi Crakk of the group State Property: Gun Possession, sentenced to 11 to 23 months.

  18. Big Lurch: Murder, sentenced to life.

  19. Styles P of the Lox: Assualt, served 9 months.

  20. Ol Dirty Bastard:Probation Violation and Drug Possession, served 20 months

  21. Lil' Troy: Drug Possession, served 18 months.

  22. Flesh-N-Bone: Threats with a Deadly Weapon, sentenced to 12 years.

  23. Keith Murray: Assault, sentenced to 5 years.

  24. Capone from the group Capone-N-Noreaga: Gun Possession, served 27 months.

  25. Tupac Shakur aka 2Pac: Sexual Assault, sentenced to 18 months to 4.5 years.

The above list doesn't include various rappers that got probation or were put under house arrest for their crimes such as Jay-Z, Trick Daddy and Coolio. Going back to the original question asked on the  cover of the Source as to whether the criminal justice system is targetting rappers, it seems to me that if anything it seems rappers are just going out of their way to tangle with the criminal justice system by committing crimes. Of course, there is the fact that young, black males are more likely to be harshly sentenced for a crime than their caucasian counterparts but this is different from the criminal justice system going out of its way to target rappers.

I find it sad that a lot of these folks whose music I've bought in the past made it out of the hood just to screw their lives up by doing the wrong thing at the wrong time.  


 

Categories: Ramblings

March 26, 2004
@ 04:47 PM

The following are excerpts from the interview with 50 Cent (multi-platinum hiphop artist, highest album and single sales for the year 2003) in the April 2004 issue of Playboy.  

Playboy: When you started dealing, at 12, where did you get the drugs?

50 Cent: I was uncomfortable asking my grandparents for certain things. They raised their kids at a time when ProKeds cost $10. When I was a kid the new Jordans were more than $100. The people I met while I was with my mother, they had jewelry and nice cars. They gave me three and a half grams -- an eight ball. That's the truth. The same money I would've paid for those Jordans. Sometimes when you ask for fish people give you a pole.

Playboy: You did buy-one-get-one-free promotions.

50 Cent: And I only called it “buy one get one free” because they were calling it “two for $5” on the next block. I was trying to make it different. I was marketing! Fiends want something free , so use the word free. It's better than “two for $5”

Platboy: Did it work?

50 Cent: Hell, yes, it worked. And I made the pieces bigger. Some guys made small pieces and figured they'd make a huge profit. But it takes longer to sell the pieces. I made the pieces huge, and they started coming from down the block. All the pieces would sell the same dat and I'd accumulate more money.

Playboy: This seems pretty heavy for a teenager.

50 Cent: Older dudes in our neighborhood were way worse. They were robbing banks; they would kidnap each other. They tried to rob me one night in front of my grandmother's house. I was 19 and had bought a 400 SE Mercedes-Benz. I got to the front door, and the sliding door of a cargo van opened. They had a shotgun. I jumped over the porch and ran for a gun in the backyard. Pow! I got away from them, though. There's a strong possibility they would've killed me.

Playboy: Did you ever use the gun you hid in your grandmother's yard?

50 Cent: The first time I ever shot somebody, I was in junior high school. I was coming out of a project building -- I ain't gonna tell you where. I was going to see this girl. I had my uncle's jewlery on, and two kids decided to rob me. This kid was like “Yo c'mere, let me holler at you”. As I turned they all started pouring out of the lobby. It had to be 15 people stepping to me to rob me. I had a little .380 six-shot pistol, and I didn't even look. I just spun around bangin'. Pop-pop-pop-pop-pop-pop! Shot and just kept running.

Playboy: Did you hit anybody?

50 Cent: Yeah, I hit one of 'em. And that encouraged the next situation. After that, you just get comfortable shooting. The first time, you're scared to death, as scared as the guy you're shooting at. Then it grows easier for you. Everybody has a conscience. You say to yourself, Man, he was gonna do something to me. Then it's like, I don't give a fuck, whatever. After a while the idea of shooting somebody doesn't bother you.

Playboy: When you were signed with Columbia, you decided to quit dealing. Then what happened?

50 Cent: I got a $65,000 advance; $50,000 went to Jam Master Jay, and $10,000 went to the lawyer to negotiate my contractual release from Jay and do my contract with Columbia. I had only $5,000 left. I had to be able to provide for myself so I took the $5,000 and turned it into 250 grams.

Playboy: You went back to dealing.

50 Cent: I had no choice.

Playboy: Do you think Jam Master Jay ripped you off?

50 Cent: He didn't he took what he felt was his. I was never bitter at Jay, because what I learned from him is what allows me now to sell 10 million records. He groomed me. That's worth $50,000

There were a bunch of other questions but most of them focused either on his violent past or his publicized beef with Ja Rule and Murder Inc. Two things struck me as I read the interview. The first was how people could live in the same country and in some times the same city yet exist in totally different worlds. The second is that America is truly the land of opportunity.


 

Categories: Ramblings

I recently read Al Franken's Lies and the Lying Liars Who Tell Them: A Fair and Balanced Look at the Right which was a very interesting read. It was definitely partisan but in this age of blatant lying by practically every highly visible member of the Bush cabinet and the Republican media boosters on Fox News, it's hard to be objective when describing some of the things they've done.

Al did a lot of research for the book, thanks a team of 14 graduate and undergraduate student researchers he got from Harvard.  There are extensive end notes and some thorough disection of the lies of the usual suspects in the conservative media like Sean Hannity, Bill O'reilly and Ann Coulter. There was also a personal account of behind the scenes of the political circus that was the memorial service of the late Senator Paul Wellstone. An interesting data point is comparing the coverage of the memorial service on CNN the shortly after it happened where they wrote, thousands pay tribute to Wellstone, to the coverage the day after once Republican talk show hosts had put their negative spin on it. The story became tone of Wellstone memorial generates anger. Al gives a blow by blow of how this happened from behind the scenes and exposes a lot of the half truths and exagerations that led to the media reports.

Another thing I found interesting was chapter 16 of the book which was entitled Operation Ignore which described the Bush administration's attitude to terrorism which was to consider a lower priority than the previous administration. A lot of the stuff I've read online about Richard Clarke's testimony to the independent 9-11 commision was stuff I'd already seen in Al Franken's book. I'm just glad it is getting wider coverage in the mainstream media instead of just being available to the few people who bought Al Franken's book.

I pray we don't get four more years of this shit...


 

Categories: Ramblings

Torsten and I are getting ready to ship the next version of RSS Bandit and have made a beta version available.

The beta version adds a couple of features over the last version of RSS Bandit such as support for the Atom 0.3 syndication format, the ability to import OPML lists into a specific category, translations to German & simplified Chinese, ability to display logos of feeds that provide them and auto-completion when typing URLs in the address bar.

The beta version also fixes a number of bugs such as the fact that the notification bubble pops up too frequently, right-clicking URLs in the address bar makes them disappear, inability to launch the application on Win98/WinME, sometimes closing a browser tab causes dozens of IE windows to be spawned, clicking mailto: or news: links opens a new browser tab and most importantly the fact that in certain cases feeds are not updated.

Any comments about the beta version should be brought up on the mailing list or discussion board. Bugs should be filed in the bug database on SourceForge and feature requests go to the feature request database on SourceForge.

Our current plan is for the beta to last 2 to 3 weeks after which we'll create an installer for the next release.

PS: Given that RSS Bandit now supports other formats besides RSS and will support more technologies in future (e.g. NNTP) it seems to make sense for us to rename the application. Torsten and I are interested in any suggestions for a new name for the project.


 

Categories: RSS Bandit

Miguel pointed me to an interesting discussion between Havoc Pennington of RedHat and Paolo Molaro, a lead developer of the Mono project. Although I exchanged mail with Miguel about this thread about a week ago I've been watching the discussion as opposed to directly commenting on it because I've been trying to figure out if this is just a discussion between a couple of Open Source developers or a larger discussion between RedHat and Novell being carried out by proxy.

Anyway, the root of the discussion is Havoc's entry entitled Java, Mono, or C++? where he starts of by pointing out that a number of the large Linux desktop projects are interested in migrating from C/C++ to managed code. Specifically he writes

In the Linux desktop world, there's widespread sentiment that high-level language technologies such as garbage collection, sandboxed code, and so forth would be valuable to have and represent an improvement over C/C++.

Several desktop projects are actively interested in this kind of technology:

  • GNOME: many developers feel that this is the right direction
  • Mozilla: to take full advantage of XUL, it has to support more than just JavaScript
  • OpenOffice.org: has constantly flirted with Java, and is considering using Java throughout the codebase
  • Evolution: has considered writing new code and features in Mono, though they are waiting for a GNOME-wide decision

Just these four projects add up to probably 90% of the lines of code in a Linux desktop built around them

Havoc then makes the argument that the Open Source community will have to make a choice between Java/JVM or C#/CLI. He argues against choosing C#/CLI by saying

Microsoft has set a clever trap by standardizing the core of the CLI and C# language with ECMA, while keeping proprietary the class libraries such as ASP.NET and XAML. There's the appearance of an open managed runtime, but it's an incomplete platform, and no momentum or standards body exists to drive it to completion in an open manner...Even if we use some unencumbered ideas or designs from the .NET world, we should never define our open source managed runtime as a .NET clone.

and argues for Java/JVM by writing

Java has broad industry acceptance, historically driven by Sun and IBM; it's by far the most-used platform in embedded and on the UNIX/Linux enterprise server...One virtue of Java is that it's at least somewhat an open standard; the Java Community Process isn't ideal, but it does cover all the important APIs. The barest core of .NET is an ECMA standard, but the class libraries of note are Microsoft-specific...It's unclear that anyone but Microsoft could have significant influence over the ECMA spec in any case...

Also worth keeping in mind, OO.org is already using Java.

Combining Java and Linux is interesting from another standpoint: it merges the two major Microsoft-alternative platforms into a united front.

At this point it is clear that Havoc does agree with what Miguel and the rest of the Mono folks have been saying for years about needing a managed code environment to elevate the state of the art in desktop application development on UNIX-based Open Source platforms. I completely disagree with him that Sun's JCP process is somehow more of an open standard than ECMA. That just seems absurd. He concludes the article with

What Next?

For some time, the gcj and Classpath teams have been working on an open source Java runtime. Perhaps it's time to ramp up this effort and start using it more widely in free software projects. How long do we wait for a proprietary JDK to become GPL compatible before we take the plunge with what we have?

The first approach I'd explore for GNOME would be Java, but supporting a choice of gcj or IKVM or the Sun/IBM JDKs. The requirement would be that only the least common denominator of these three can be used: only the subset of the Java standard completed in GNU Classpath, and avoiding features specific to one of the VMs. Over time, the least common denominator becomes larger; Classpath's goal is to complete the entire Java standard.

There is also some stuff about needing to come up with an alternative to XAML so that GNOME and co. stay competitive but that just seems like the typical Open Source need to clone everything a proprietary vendor does without thinking it through. There was no real argument as to why he thought it would be a good idea, just a need to play catchup with Microsoft.

Now on to the responses. Paolo has two responses to Havoc's call to action. Both posts argue that technically Mono is as mature as the Open Source Java/JVM projects and has niceties such as P/Invoke that make communication between native and managed code straightforward. Secondly, his major point is that there is no reason to believe that while Microsoft will eventually sue the Mono project for violating patents on .NET Framework technologies that Sun would not do the same with Java technologies. Not only has Sun sued before when it felt Java was being threatened (the lengthy lawsuit with Microsoft) but unlike Microsoft it has never given any Java technology to a standards body to administer in a royalty free manner as Microsoft has done with C# and the CLI. Miguel also followed up with his post Java, Gtk and Mono which shows that it is possible to write Java code against Mono which points out that language choice is separate from the choice of which runtime (JVM vs. CLI) you use. He also echoes Paolo's sentiments on Sun and Microsoft's behavior with regards to software patents and their technologies in his post On Software Patents.

Havoc has a number of followup posts where he points out various other options people have mailed him and where he points out that his primary worry is that the current state of affairs will lead to fragmentation in the Open Source desktop world.  Miguel responds in his post On Fragmentation, reply with the followng opening

Havoc, you are skipping over the fact that a viable compromise for the community is not a viable compromise for some products, and hence why you see some companies picking a particular technology as I described at length below.

which I agree with completely. Even if the Open Source community agreed to go with C#/CLI I doubt that Sun would choose anything besides Java for their “Java Desktop System”. If Havoc is saying having companies like Sun on board with whatever decision he is trying to arrive at is a must then he's already made the decision to go with Java and the JVM. Given that Longhorn will have managed APIs (aka WinFX) Miguel believes that the ability to migrate from Windows programming to Linux programming [based on Mono] would be huge.  I agree, one of the reasons Java became so popular was the ease with which one could migrate from platform to platform and preserve one's knowledge since Java was somewhat Write Once Run Anywhere (WORA). However this never extended to building desktop applications which Miguel is now trying to tap into by pushing Linux desktop development to be based on Mono.

I have no idea how Microsoft would react to the outcome that Miguel envisions but it should be an interesting ride.

 


 

Categories: Technology

Aaron Skonnard has a new MSDN magazine article entitled All About Blogs and RSS where he does a good job of summarizing the various XML technologies around weblogs and syndication. It is a very good FAQ and one I definitely will be pointing folks to in future when asked about blogging technologies. 


 

Categories: Mindless Link Propagation | XML

My recent Extreme XML column entitled Best Practices for Representing XML in the .NET Framework  is up on MSDN. The article was motivated by Krzysztof Cwalina who asked the XML team for design guidelines for working with XML in WinFX. There had been and currently is a bit of inconsistency in how APIs in the .NET Framework represent XML and this is the first step in trying to introduce a set of best practices and guidelines.

As stated in the article there are three primary situations when developers need to consider what APIs to use for representing XML. The situations and guidelines are briefly described below:

  • Classes with fields or properties that hold XML: If a class has a field or property that is an XML document or fragment, it should provide mechanisms for manipulating the property as both a string and as an XmlReader.

  • Methods that accept XML input or return XML as output: Methods that accept or return XML should favor returning XmlReader or XPathNavigator unless the user is expected to be able to edit the XML data, in which case XmlDocument should be used.

  • Converting an object to XML: If an object wants to provide an XML representation of itself for serialization purposes, then it should use the XmlWriter if it needs more control of the XML serialization process than what is provided by the XmlSerializer. If the object wants to provide an XML representation of itself that enables it to participate fully as a member of the XML world, such as allow XPath queries or XSLT transformations over the object, then it should implement the IXPathNavigable interface.

A piece of criticism I got from Joshua Allen was that the guidelines seemed to endorse a number of approaches instead of defining the one true approach. The reason for this is that there isn't one XML API that satisfies the different scenarios described above. In Whidbey we will be attempting to collapse the matrix of choices by expanding the capabilities of XML cursors so that there shouldn't be a distinction between situations where an API exposes an API like XmlDocument or one like XPathNavigator.  

One of the interesting design questions we've gone back and forth on is whether we have both a read-only XML cursor and read-write XML cursor (i.e. XPathNavigator2 and XPathEditor)  or a single XML cursor class which has a flag that indicates whether it is read-only or not (i.e. the approach taken by the System.IO.Stream class which has CanRead and CanWrite properties). In Whidbey beta 1 we've gone with the former approach but there is discussion on whether we should go with the latter approach in beta 2. I'm curious as to which approach developers using System.Xml would favor.


 

Categories: XML

In less than a week we'll be launching the XML Developer Center on MSDN and replacing the site at http://msdn.microsoft.com/xml. The main differences between the XML Developer Center and what exists now will be

  1. The XML Developer Center will provide an entry point to working with XML in Microsoft products such as Office and SQL Server.

  2. The XML Developer Center will have an RSS feed.

  3. The XML Developer Center will pull in content from my work weblog.

  4. The XML Developer Center will provide links to recommended books, mailing lists and weblogs.

  5. The XML Developer Center will have content focused on explaining the fundamentals of the core XML technologies such as XML Schema, XPath, XSLT and XQuery.

  6. The XML Developer Center will provide sneak peaks at advances in XML technologies at Microsoft that will be shipping future releases of the .NET Framework, SQL Server and Windows.

During the launch the feature article will be the first in a series by Mark Fussell detailing the changes we've made to the System.Xml namespaces in Whidbey. His first article will focus on the core System.Xml classes like XmlReader and XPathNavigator. A follow up article is scheduled that will talk about additions to System.Xml since the last version of the .NET Framework such as XQuery. Finally, either Mark or Matt Tavis will write an article about the changes coming to System.Xml.Serialization such as the various hooks for allowing custom code generation from XML schemas such as IXmlSerializable (which is no longer an unsupported interface) and SchemaImporterExtensions.

I'll also be publishing our guidelines for exposing XML in .NET applications as well during the launch. If there is anything else you'd like to see on the XML Developer Center let me know.


 

Categories: XML