[
Lists Home |
Date Index |
Thread Index
]
If you don't have the latest version of window or don't do windows at
all, you can still get a look on how NET does XML.
The Rotor project from MS, is an implementation of NET (the ECMA
standard, I think!) for FreeBSD. If you download the Rotor for FreeBSD,
you also get the Csharp source code for the XML impl. + others. You can
get Rotor here : http://msdn.microsoft.com/net/sscli/ (aprox. 11.5 MB).
Since Csharp is almost Java + some extra tricks (Don't flame me on
this! ) This means that if you can read Java you can also read the
Csharp code. If you want to know the difference between Java and Csharp,
then read this article:
http://genamics.com/developer/csharp_comparative.htm . That will get you
started.
It seams that the you are allowed to modify the code, and even
redistribute the code, but not for commercial use. (Look at the rotor
license at the bottom of this message) I don't know if you are allowed
to convert the Csharp code to Java, so that you can test the NET impl of
xml on a Java VM (if you don't have access to the latest version of
windows) but it should be possible to do.
The Csharp source code in rotor includes code for, xslt, xml schema,
xpath, soap, XmlTextReader + more.
Here is a little Csharp app, that shows the NET xml in action: (more
examples at http://staff.develop.com/aarons)
// if this works, it was written by Aaron Skonnard
// http://staff.develop.com/aarons
using System;
using System.Xml;
using System.Xml.Xsl;
public class TransformationUtility
{
public static void transformDocument(String strXML, String strXSLT,
XmlWriter xw)
{
try
{
// load the source document (to be transformed)
XmlDocument docSource = new XmlDocument();
docSource.Load(strXML);
// wrap it with an XmlNavigator
DocumentNavigator navSource = new
DocumentNavigator(docSource);
// create the XslTransform object
XslTransform tr = new XslTransform();
// load it with the stylesheet
tr.Load(strXSLT);
// call transform - output streamed to console
tr.Transform(navSource, null, xw);
}
catch(XmlException e)
{
Console.WriteLine("###error: " + e.Message);
}
}
public static void Main(String[] args)
{
if (args.Length < 2)
{
Console.WriteLine("usage: xslt sourcedoc xsltdoc
[outdoc]");
return;
}
if (args.Length == 3)
{
// create an XmlTextWriter to a file on disk
XmlTextWriter tw = new XmlTextWriter(args[2], null);
transformDocument(args[0], args[1], tw);
return;
}
// otherwise send output to console
transformDocument(args[0], args[1], new
XmlTextWriter(Console.Out));
}
}
Niels Peter
The rotor license:
------------------------------------------------------------------------------------------
MICROSOFT SHARED SOURCE CLI, C#, AND JSCRIPT LICENSE
This License governs use of the accompanying Software, and your use of
the Software constitutes acceptance of this license.
You may use this Software for any non-commercial purpose, subject to the
restrictions in this license. Some purposes which can be
non-commercial are teaching, academic research, and personal
experimentation. You may also distribute this Software with books or
other teaching materials, or publish the Software on websites, that are
intended to teach the use of the Software.
You may not use or distribute this Software or any derivative works in
any form for commercial purposes. Examples of commercial purposes would
be running business operations, licensing, leasing, or selling the
Software, or distributing the Software for use with commercial products.
You may modify this Software and distribute the modified Software for
non-commercial purposes, however, you may not grant rights to the
Software or derivative works that are broader than those provided by
this License. For example, you may not distribute modifications of the
Software under terms that would permit commercial use, or under terms
that purport to require the Software or derivative works to be
sublicensed to others.
You may use any information in intangible form that you remember after
accessing the Software. However, this right does not grant you a
license to any of Microsoft's copyrights or patents for anything you
might create using such information.
In return, we simply require that you agree:
1. Not to remove any copyright or other notices from the Software.
2. That if you distribute the Software in source or object form, you
will include a verbatim copy of this license.
3. That if you distribute derivative works of the Software in source
code form you do so only under a license that includes all of the
provisions of this License, and if you distribute derivative works of
the Software solely in object form you do so only under a license that
complies with this License.
4. That if you have modified the Software or created derivative works,
and distribute such modifications or derivative works, you will cause
the modified files to carry prominent notices so that recipients know
that they are not receiving the original Software. Such notices must
state: (i) that you have changed the Software; and (ii) the date of any
changes.
5. THAT THE SOFTWARE COMES "AS IS", WITH NO WARRANTIES. THIS MEANS NO
EXPRESS, IMPLIED OR STATUTORY WARRANTY, INCLUDING WITHOUT LIMITATION,
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR ANY
WARRANTY OF TITLE OR NON-INFRINGEMENT. ALSO, YOU MUST PASS THIS
DISCLAIMER ON WHENEVER YOU DISTRIBUTE THE SOFTWARE OR DERIVATIVE WORKS.
6. THAT MICROSOFT WILL NOT BE LIABLE FOR ANY DAMAGES RELATED TO THE
SOFTWARE OR THIS LICENSE, INCLUDING DIRECT, INDIRECT, SPECIAL,
CONSEQUENTIAL OR INCIDENTAL DAMAGES, TO THE MAXIMUM EXTENT THE LAW
PERMITS, NO MATTER WHAT LEGAL THEORY IT IS BASED ON. ALSO, YOU MUST
PASS THIS LIMITATION OF LIABILITY ON WHENEVER YOU DISTRIBUTE THE
SOFTWARE OR DERIVATIVE WORKS.
7. That if you sue anyone over patents that you think may apply to the
Software or anyone's use of the Software, your license to the Software
ends automatically.
8. That your rights under the License end automatically if you breach it
in any way.
9. Microsoft reserves all rights not expressly granted to you in this
license.
|