Sausalito is a product that enables you to develop, test, deploy, and host scalable web applications in the cloud. On this page, you find some reading material in case you're interested in
* technical details about Sausalito,
* user experience reports, or
* presentations and demos that we gave.
For those of you who've got into it you'll know that test driven development is great. It gives you the confidence to change code safe in the knowledge that if something breaks you'll know about it. Except for those bits you don't know how to test. Until now XML has been one of them. Oh sure you can use "<stuff></stuff>".equals("<stuff></stuff>"); but is that really gonna work when some joker decides to output a <stuff/>? -- damned right it's not ;-)
When the only thing you've got is a XML Hammer, every solution looks like XML.
The XML Hammer application is a free and open-source tool that simplifies elementary XML actions like checking for well-formedness, validation, transformation and xpath searches using any JAXP implementation.
After all these years of XML, it is still relatively difficult to simply validate or transform XML files. You are currently either forced to use extensive, sometimes expensive, and most often difficult to use tools with a lot of extra functionality unnecessary for these simple tasks and very often not flexible enough to provide what you want, or you will have to be almost a programmer and create your own application or script to handle these elementary XML related tasks.
The XML Hammer tool addresses these issues by providing a free and open-source tool that has a (relatively) simple to use user-interface however still allowing the flexibility for the user to specify anything that he/she would have been able to specify when writing a script for this same task him/herself.
The functionality of the XML Hammer tool is based on the capabilities provided by the Java API for XML Processing (JAXP) and supports the JAXP API as fully as possible. To achieve this, the functionality has been divided into five specific project types:
The ActiveBPEL™ engine is a robust runtime environment that is capable of executing process definitions created for the Business Process Execution Language (BPEL) standard.
There are a number of open-source unit testing tools available. So why another one?
Well, this one addresses a specific need - an easy way to test XML-based servers. If you have a server that communicates with clients via XML messages, you can end up putting a lot of effort into using one of the unit-testing frameworks to test all the messages. Just think of all the code needed to set up communications, construct messages, and verify responses.
A simple alternative is to document XML messages and expected responses, without having to write any code. Let XmlMessageTest send each XML message to the server, verify returned messages against expected results, and produce a simple report of test results.
XmlMessageTest is written in Java and should be able to run any Java-enabled platform. It's been tested on Windows XP and Linux. It can be easily integrated into your build process.
XPath Explorer (XPE) is a GUI application that lets you interactively experiment with XPath. Basically, you type in a URL (to an XML or HTML document) and an XPath expression, and it displays the elements or attributes from that document which match that
Altova SemanticWorks™ 2007 is the ground-breaking visual RDF/OWL editor from the creators of XMLSpy. Visually design Semantic Web instance documents, vocabularies, and ontologies then output them in either RDF/XML or N-triples formats. SemanticWorks™
Apache CXF is an open source services framework. CXF helps you build and develop services using frontend programming APIs, like JAX-WS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI.
The Synapse project is a robust, lightweight implementation of a highly scalable and distributed service mediation framework based on Web services and XML specifications.
XRay is a free XML editing enviroment. Now in its second major release, XRay provides support for XML Schema (XSD) and an integrated online XML tutorial system.
State Chart XML (SCXML) is currently a Working Draft published by the World Wide Web Consortium (W3C). SCXML provides a generic state-machine based execution environment based on Harel State Tables. SCXML is a candidate for the control language within multiple markup languages coming out of the W3C (see Working Draft for details). Commons SCXML is an implementation aimed at creating and maintaining a Java SCXML engine capable of executing a state machine defined using a SCXML document, while abstracting out the environment interfaces.
State Chart XML (SCXML) is currently a Working Draft published by the World Wide Web Consortium (W3C). SCXML provides a generic state-machine based execution environment based on Harel State Tables. SCXML is a candidate for the control language within multiple markup languages coming out of the W3C (see Working Draft for details). Commons SCXML is an implementation aimed at creating and maintaining a Java SCXML engine capable of executing a state machine defined using a SCXML document, while abstracting out the environment interfaces.
Jersey 1.0 is an open-source, production-ready reference implementation of JAX-RS, the Java API for RESTful Web Services (JSR-311). Jersey makes it easy to create RESTful web services in Java.
In an earlier Tech Tip, Implementing RESTful Web Services in Java, Paul Sandoz and I introduced RESTful Web Services, JAX-RS, and Jersey, and showed how to write RESTful web services in Java that conform to the JAX-RS specification. In this tip you will learn how to configure data in JSON (JavaScript Object Notation) using Jersey 1.0. JSON is a lightweight data-interchange format that is based on the object notation of the JavaScript language. Because of it's simple text format, JSON provides a good alternative to other data interchange formats such as XML and is particularly attractive as a data interchange format for RESTful web services.
In this tip you will build a Jersey-based web application that provides information about printer status. The application returns the information in JSON format. To build the application, you will use the Maven 2 software project management tool. For more information about Maven, see Welcome to Maven and Building Web Applications with Maven 2.
The intention for this project is a very simple API to call different kinds of services (provider/technology). Crispy's aims is to provide a single point of entry for remote invocation for a wide number of transports: eg. RMI, EJB, JAX-RPC or XML-RPC. It works by using properties to configure a service manager, which is then used to invoke the remote API. Crispy is a simple Java codebase with an API that sits between your client code and the services your code must access. It provides a layer of abstraction to decouple client code from access to a service, as well as its location and underlying implementation. The special on this idea is, that these calls are simple Java object calls (remote or local calls are transparent).
CSSToXSLFO is a utility which can convert an XML document, together with a CSS2 style sheet, into an XSL-FO document, which can then be converted into PDF, PostScript, etc. with an XSL-FO-processor. It has special support for the XHTML vocabulary, because that is the most obvious language it would be used for. The tool has a number of page-related extensions. It also comes with an API in the form of an XML filter.
Whilst you don't need to be a mechanic to drive a car, it is helpful if you have a basic understanding of how a car works, what bits do different jobs, and how to top up your oil and pump up your tyres / tires. This presentation will give an overview of the DSpace architecture, and will give you enough knowledge to understand how DSpace works. By knowing this, you will also learn about ways DSpace could be used, and ways in which it can't be used.
DynamicDOM is an extension of the W3C DOM (Document Object Model) that adds dynamism to XML. For example, it allows you to define rules so that when you change, say, the TotalIncome node, the IncomeTax node updates automatically.
Just as C++ adds code to the C struct to create a class, DynamicDOM adds intelligence, in the form of rules and code, to the DOM to expand its capabilities beyond parsing XML documents to processing and enforcing business rules. Your XML document, then, becomes dynamic in the sense that it contains rules and code in addition to data, and updates itself automatically based predefined rules.
EuroMath2 WYSIWYG XML Editor Platform serves as a platform for editors editing various XML files. It is able to contain and manage editors with WYSIWYG capability. By default it contains:
* a basic XSL-FO editor, capable of editing XML documents transformable to XSL-FO,
* a read-only support for SVG and MathML,
* a (very incomplete) XHTML support (implemented using a stylesheet capable of transforming XHTML into the XSL-FO)
Software für Anzeige, Druck, Konvertierung von XSL-FO-Dateien.
Diese Software ist ein Teilprodukt des XML-Reporting-Tools KapHoorn.
Basiert auf Apache FOP 0.20.5. Setzt Java 2 SE ab 1.4.0 voraus (s.u.).
Beim Start versucht das System, eine Datei \help\info.fo auszuführen, wenn diese Datei fehlt, wird eine entsprechende Meldung erzeugt.
Es gelten die Lizenzbestimmungen der Apache Foundation für die entsprechenden Sourcen. Der KapHoorn-Viewer allein ist kostenlos.
Looks very old-fashioned, already checked in 2004, too complex IMHO: FOA is the world's first XSL-FO Authoring tool. It is a Java application that gives users a graphical interface to author XSL-FO stylesheets. With FOA you can generate pages, page sequences and fill them with content provided into one or more XML files. FOA will generate the XSLT stylesheet that transforms the XML content into an XSL-FO document. FOA is compatible with WH2FO so you can author more quickly you documents. From FOA GUI is also possible to invoke an XSLT processor and an XSL-FO renderer, so you can see how the document looks like.
a free user interface builder for GTK+ and GNOME interfaces designed are saved as XML, and by using the libglade library these can be loaded by applications dynamically as needed. (Glade can also generate C code)
Model-based Data Export Tool
Features
* Mass data export to XML and SQL.
* Generates hierarchically structured XML and topologically sorted SQL-DML.
* Exports consistent and referentially intact row-sets from your productive database and imports the data into your development and test environment.
* Removes and archives obsolete data from your productive database without violating integrity.
* Open Source. Entirely written in Java. Platform independent. DBMS agnostic.
JEuclid is a complete MathML rendering solution, consisting of:
* A MathViewer application
* Command line converters from MathML to other formats
* An ant task for autmated conversion
* Display components for AWT and Swing
* A component for Apache Cocoon
JSefa (Java Simple exchange format api) is a simple library for stream-based serialization of java objects to XML, CSV, and FLR (extensible to other formats) and back again using an iterator-style interface independent of the serialization format. The mapping between java object types and types of the serialization format (e. g. xml complex element types) can be defined either by annotating the java classes or programmatically using a simple API. The current implementation supports XML, CSV and FLR (Fixed Length Record) - for XML it is based on JSR 173.
JSR 173 (Stax) is a popular stream-based XML API for java providing an iterator-style interface ("pull"-mechanism in contrast to the "push"-mechanism provided by SAX). But JSR 173 defines a low-level API not designed for directly serializing java objects and back again. On the other hand traditional high-level APIs like JAXB or Castor are not stream-based, so that reading a xml document will generate java objects holding the data of the complete xml document in memory at the same time. Even the integration of StAX into JAXB 2.0 is only a first step to high-level streaming, as two independent APIs have to be used in parallel. JSefa provides a convenient and performant approach to high-level streaming using an iterator-style interface. It has a layered API with the top layer allowing the streaming to be independent of the serialization format type (XML, CSV or whatever). The current implementation provides support for XML, CSV, and FLR.
What is Kernow?
Kernow is an open source tool designed to make it faster and easier to repeatedly run transforms using Saxon.
It uses compiled stylesheets, multiple threads and caching resolvers to make the transforms run efficiently, and comboboxes that remember between runs to save your fingers having to retype paths. Kernow is runnable from Ant allowing it to slot into your build process, and its a high level API for Saxon making it very easy to run transforms from your own Java applications.
This project started from my frustration that I could not find any simple, portable XML Parser to use inside my tools (see CONDOR for example). Let's look at the well-known Xerces C++ library: the complete Xerces project is 53 MB! (11 MB compressed in a zipfile). I am currently developping many small tools. I am using XML as standard for all my input /ouput configuration and data files. The source code of my small tools is usually around 600KB.
Metawidget takes your domain objects and automatically creates User Interface components for them, saving you handcoding your UIs and leaving you to concentrate on stitching together your application.
As much as possible, Metawidget does this without introducing new technologies. It inspects, at runtime, an application's existing back-end architecture (such as JavaBeans, annotations, XML configuration files) and creates components native to its existing front-end framework (such as Swing, Java Server Faces, Struts or Android).
Metawidget does not hide the power of your existing User Interface framework from you and guarantees that your investment in its technology and knowledge is as valid as always. The LGPL open source license allows the use of Metawidget in open source and commercial projects.
The Milyn Project is building Open-Source Java components for XML and non-XML Processing.
Smooks
Smooks is a Java framework for managing and performing Fragment Based XML Processing (Transformation/Analysis).
Smooks can be used in conjunction with or as an alternative to XSLT for XML Transformation.
Smooks gives you more control when performing XML Transformations and Analysis by giving you the freedom to use the tools and programming languages most appropriate to the type of transformation in question (or your skillset).
* Mix and Match different tools and languages in the process of transforming a single message/document e.g. it may be easier to transform one part of the document using pure Java and another part using XSLT.
* Simplify your XSLT and StringTemplate Templates by combining the power of the Smooks Javabean and Templating Cartiridges.
* Analyse/Read your XML and non-XML data into named Javabeans using the Smooks Javabean Cartiridge.
* more...
MindRaider is easy-to-use system for organizing of your resources - local files, analytical documents, images, thoughts, friends, tasks, web links, etc. MindRaider enables you to annotate these resources with metadata describing how they are related. Also
The Semantic Web Research Group is a group of people working with Semantic Web technology inside the MIND LAB at University of Maryland Institute for Advanced Computer Studies
a free source code editor which supports several programming languages running under the MS Windows environment. based on Scintilla edit component (a very powerful editor component)
This list provides a quick overview of the landscape of open-source bibliographic software; both where is has been, but more importantly, where it may yet go.
eXist-db is an open source database management system entirely built on XML technology. It stores XML data according to the XML data model and features efficient, index-based XQuery processing.
Project Open ESB implements an Enterprise Service Bus (ESB) runtime using Java Business Integration as the foundation. This allows easy integration of web services to create loosely coupled enterprise class composite applications.
The OpenLaszlo platform allows developers to create applications with the rich user interface capabilities of desktop client software and the instantaneous no-download Web deployment of HTML.
Pivot is an open-source platform for building rich internet applications in Java. It combines the enhanced productivity and usability features of a modern RIA toolkit with the robustness of the industry-standard Java platform.
Pivot applications are written using a combination of Java and XML and can be run either as an applet or as a standalone (optionally offline) desktop application. While Pivot was designed to be familiar to web developers who have experience building AJAX applications using HTML, CSS, and JavaScript, it provides a much richer set of standard widgets than HTML, and allows developers to create sophisticated user experiences much more quickly and easily. Pivot will also seem familiar to Swing developers, as both Swing and Pivot are based on Java2D and employ a model-view-controller (MVC) architecture to separate component data from presentation. However, Pivot includes additional features that make building modern GUI applications much easier, including declarative UI, data binding, effects and transitions, and web services integration.
This is the Wiki for the Pivot project. It includes a collection of demos as well as a tutorial introduction to the platform:
Platypus is a full-featured and easy-to-use page layout and typesetting system.
Inspired by technologies such as TeX, Platypus adds new features and, especially, ease of use to the generation of documents of all kinds. It is particularly adept at listing code, and so is frequently used for documentation. Input consists of text files with embedded formatting commands. These files are converted by Platypus to PDF, HTML, or Microsoft Rich Text Format (RTF).
Platypus is written in Java and relies on the iText library. It is available at no charge under the Apache open-source license. For more information, see the links to the left.
One night five developers, all of whom wore very thick glasses and had recently been hired by Elephants, Inc., the world’s largest purveyor of elephants and elephant supplies, were familiarizing themselves with the company’s order processing system wh
RefDB is a reference database and bibliography tool for SGML, XML, and LaTeX/BibTeX documents. It allows users to share databases over a network. It is accessible through command-line tools, through a web interface, from text editors (Emacs, Vim), and it contains a SRU server. Programmers can use Perl and PHP libraries to integrate RefDB functionality into their own projects. RefDB is released under the GNU General Public License and runs on Linux, the *BSDs, OS X, Solaris, and Windows/Cygwin.