Thread: [bvalid-codewatch] SF.net SVN: bvalid: [22] trunk/src/doc
Status: Beta
Brought to you by:
cwilper
|
From: <cw...@us...> - 2006-05-01 16:11:44
|
Revision: 22 Author: cwilper Date: 2006-05-01 09:11:23 -0700 (Mon, 01 May 2006) ViewCVS: http://svn.sourceforge.net/bvalid/?rev=22&view=rev Log Message: ----------- more docs Modified Paths: -------------- trunk/src/doc/index.html trunk/src/java/net/sf/bvalid/ValidatorException.java Modified: trunk/src/doc/index.html =================================================================== --- trunk/src/doc/index.html 2006-05-01 12:15:11 UTC (rev 21) +++ trunk/src/doc/index.html 2006-05-01 16:11:23 UTC (rev 22) @@ -22,12 +22,16 @@ <ol> <li><a href="#intro">Introduction</a></li> - <li><a href="#api">The Java API</a></li> - <li><a href="#cmdline">The Unix/Windows Command-Line Utility</a></li> + <li><a href="#inst">Downloading and Installing</a></li> + <li><a href="#api">API Documentation</a></li> + <li><a href="#cmdline">Command-Line Utility</a></li> + <li><a href="#issues">Known Issues</a></li> </ol> </div> </div> +<p> </p> + <div class="sec2"> <h2><a name="intro">1. Introduction</a></h2> <p> @@ -35,22 +39,163 @@ It defines and implements several interfaces to make validation flexible and consistent across schema languages. </p> -<!-- <div class="code"><pre>C:\fedora-2.1.1><b> fedora-setup no-ssl-authenticate-apim</b></pre></div> --> + <p> + Distinguishing features: + <ul> + <li> Implements a persistent schema file cache</li> + <li> Works with pluggable schema resolvers / catalogs</li> + <li> Wraps existing, quality validation libraries rather than implementing its own</li> + </ul> + </p> </div> +<p> </p> + <div class="sec2"> - <h2><a name="api">2. The Java API</a></h2> + <h2><a name="api">2. Downloading and Installing</a></h2> <p> - The main interface you work with is the <code>Validator</code>. + The latest distribution (source and binary) can be downloaded from + <a href="http://www.sf.net/projects/bvalid">http://www.sf.net/projects/bvalid</a> </p> + <p> + After unzipping the binary distribution, you should be able to use the + <code>bvalid</code> <a href="#cmdline">command-line utility</a> right away. + </p> + <p> + To begin using bvalid in your own projects, you'll need the + following jars (included) in your CLASSPATH: + <ul> + <li> <b>bvalid.jar</b> - the BValid API</li> + <li> lib/<b>commons-httpclient-2.0.1.jar</b> - for resolving schemas via http</li> + <li> lib/<b>commons-logging.jar</b> - for logging (required by commons-httpclient)</li> + <li> lib/<b>log4j-1.2.8.jar</b> - for logging</li> + <li> lib/<b>xercesImpl.jar</b> - for XML parsing and XSD validation</li> + <li> lib/<b>xml-apis.jar</b> - for XML parsing</li> + </ul> + </p> </div> +<p> </p> + <div class="sec2"> - <h2><a name="cmdline">3. The Unix/Windows Command-Line Utility</a></h2> + <h2><a name="api">3. API Documentation</a></h2> <p> + The main interface you work with is the <a href="api/net/sf/bvalid/Validator.html">Validator</a>. Once you have obtained an instance from the <a href="api/net/sf/bvalid/ValidatorFactory.html">ValidatorFactory</a>, you can use it to validate any number of XML documents from any number of concurrent threads. + </p> +<p> + To become familar with the API, see the examples below, + then check out the <a href="api/index.html">API Javadocs</a> + for more detailed information. +</p> + <p> + The following example uses a validator without any special configuration. + </p> + <div class="code"><pre> +Validator v = ValidatorFactory.getValidator(SchemaLanguage.XSD, null); + +try { + File doc = new File("mydoc.xml"); + v.validate(new FileInputStream(doc)); + System.out.println("Validation SUCCESSFUL!"); +} catch (ValidationException e) { + System.out.println("Validation FAILED: " + e.getMessage()); + if (e.getCause() != null) { + e.getCause().printStackTrace(); + } +} +</pre></div> + <p> + This next example uses a validator that automatically caches + schema files to disk, and keeps parsed grammars in memory for re-use. + </p> + <div class="code"><pre> +File cacheDir = new File("mySchemaCache"); +cacheDir.mkdirs(); + +Map opts = new HashMap(); +opts.put(ValidatorOption.CACHE_PARSED_GRAMMARS, "true"); + +Validator v = ValidatorFactory.getValidator(SchemaLanguage.XSD, + cacheDir, + opts); + +try { + File doc = new File("mydoc.xml"); + v.validate(new FileInputStream(doc)); + System.out.println("Validation SUCCESSFUL!"); +} catch (ValidationException e) { + System.out.println("Validation FAILED: " + e.getMessage()); + if (e.getCause() != null) { + e.getCause().printStackTrace(); + } +} +</pre></div> + <p> + The final example, below, is more advanced. It demonstrates using a + <a href="api/net/sf/bvalid/locator/SchemaLocator.html">SchemaLocator</a> backed + by a pre-populated, memory-based + <a href="api/net/sf/bvalid/catalog/SchemaCatalog.html">SchemaCatalog</a>. + It also instructs the validator NOT to fail if the instance document + references a schema that isn't in the catalog. + This effectively causes the validator to ONLY use our local schema + copies (when referenced), and to skip validation for parts of the + document that point to other schemas. + </p> + </p> + <div class="code"><pre> +File schema1 = new File("my-schema1.xsd"); +File schema2 = new File("my-schema2.xsd"); + +SchemaCatalog catalog = new MemorySchemaCatalog(); +catalog.put("http://example.org/schema1.xsd", new FileInputStream(schema1)); +catalog.put("http://example.org/schema2.xsd", new FileInputStream(schema2)); + +SchemaLocator locator = new CatalogSchemaLocator(catalog); + +Map opts = new HashMap(); +opts.put(ValidatorOption.CACHE_PARSED_GRAMMARS, "true"); +opts.put(ValidatorOption.FAIL_ON_MISSING_REFERENCED, "false"); + +Validator v = ValidatorFactory.getValidator(SchemaLanguage.XSD, + locator, + opts); +try { + File doc = new File("mydoc.xml"); + v.validate(new FileInputStream(doc)); + System.out.println("Validation SUCCESSFUL!"); +} catch (ValidationException e) { + System.out.println("Validation FAILED: " + e.getMessage()); + if (e.getCause() != null) { + e.getCause().printStackTrace(); + } +} +</pre></div> + + +</div> + +<p> </p> + +<div class="sec2"> + <h2><a name="cmdline">4. Command-Line Utility</a></h2> + <p> The <code>bvalid</code> command-line utility is a simple application of the API that - can be used for validating a single XML document at a time. + can be used to validate a single XML document at a time. </p> + <p> + To use it, + change to the directory where the BValid binary distribution has been installed, + and type <code><b>bvalid</b></code>. If you want to run it from any + directory, set the <code>BVALID_HOME</code> environment variable to the installation + directory, then add it to your <code>PATH</code>. + </p> + <p> + Note: In Unix, you will need to make the bvalid script executable before running + it. This can be done with <code><b>chmod 755 bvalid</b></code> + </p> + <p> + Running <code><b>bvalid -h</b></code> displays the following usage information. + </p> <div class="code"><pre>Usage: bvalid [OPTIONS] LANG XMLFILE Or: bvalid --version Or: bvalid --help @@ -71,6 +216,22 @@ -h, --help Print help and exit (exclusive option)</pre></div> </div> +<p> </p> + +<div class="sec2"> + <h2><a name="issues">5. Known Issues</a></h2> + <ul> + <li> + The present version only performs <a href="http://www.w3.org/XML/Schema">W3C Schema</a> validation. Future + versions will also support <a href="http://www.schematron.com/">Schematron</a> + and <a href="http://www.relaxng.org/">Relax NG</a> validation. + </li> + <li> <code>ValidationException</code> isn't clear about how multiple validation errors are reported.</li> + <li> Should the API include more direct support for schema whitelisting? + Currently this is possible by writing your own SchemaLocator.</li> + </ul> +</div> + <div id="footer"> <div id="copyright"> Copyright © 2006 Modified: trunk/src/java/net/sf/bvalid/ValidatorException.java =================================================================== --- trunk/src/java/net/sf/bvalid/ValidatorException.java 2006-05-01 12:15:11 UTC (rev 21) +++ trunk/src/java/net/sf/bvalid/ValidatorException.java 2006-05-01 16:11:23 UTC (rev 22) @@ -1,7 +1,7 @@ package net.sf.bvalid; /** - * Signals an error not directly related to validation. + * Superclass for all BValid-generated exceptions. * * @author cw...@cs... */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cw...@us...> - 2006-05-04 13:57:25
|
Revision: 26 Author: cwilper Date: 2006-05-04 06:57:12 -0700 (Thu, 04 May 2006) ViewCVS: http://svn.sourceforge.net/bvalid/?rev=26&view=rev Log Message: ----------- updated style Modified Paths: -------------- trunk/src/doc/index.html trunk/src/doc/style.css Modified: trunk/src/doc/index.html =================================================================== --- trunk/src/doc/index.html 2006-05-04 03:11:51 UTC (rev 25) +++ trunk/src/doc/index.html 2006-05-04 13:57:12 UTC (rev 26) @@ -11,8 +11,8 @@ <body> <div id="header"> <div id="title"> - <h2>BValid XML Validation API</h2> - <h2>User Guide</h2> + <h1>BValid XML Validation API<br/> + Version 0.8</h1> </div> </div> @@ -30,8 +30,6 @@ </div> </div> -<p> </p> - <div class="sec2"> <h2><a name="intro">1. Introduction</a></h2> <p> @@ -49,8 +47,6 @@ </p> </div> -<p> </p> - <div class="sec2"> <h2><a name="inst">2. Downloading and Installing</a></h2> <p> @@ -75,8 +71,6 @@ </p> </div> -<p> </p> - <div class="sec2"> <h2><a name="api">3. API Documentation</a></h2> <p> @@ -174,8 +168,6 @@ </div> -<p> </p> - <div class="sec2"> <h2><a name="cmdline">4. Command-Line Utility</a></h2> <p> @@ -216,8 +208,6 @@ -h, --help Print help and exit (exclusive option)</pre></div> </div> -<p> </p> - <div class="sec2"> <h2><a name="issues">5. Known Issues</a></h2> <ul> Modified: trunk/src/doc/style.css =================================================================== --- trunk/src/doc/style.css 2006-05-04 03:11:51 UTC (rev 25) +++ trunk/src/doc/style.css 2006-05-04 13:57:12 UTC (rev 26) @@ -12,11 +12,13 @@ } #header { - border-bottom: 1px solid; + border: 2px solid black; clear: both; margin-bottom: 10px; min-height: 70px; width: 100%; + background: khaki; + color: black; } #logo { @@ -77,12 +79,12 @@ #footer { border-top: 1px solid; - margin-top: 20px; + margin-top: 36px; padding-top: 8px; } #footer #copyright, #lastModified { - color: #4C7C8E; + color: black; } #footer #copyright { @@ -93,13 +95,13 @@ float: right; } -/* FIXME: Make these sort of match the Category4 stuff, - but still be appropriate for documentation */ - -h1, h2, h3 { - color: #4C7C8E; - margin-top: 4px; +h2, h3 { +/* color: #4C7C8E; */ + color: darkblue; + margin-top: 36px; +/* margin-top: 4px; */ margin-bottom: 4px; + border-bottom: dashed 1px #000000; } h4, h5 { @@ -110,10 +112,8 @@ } h1 { - font-size: 24pt; + font-size: 18pt; line-height: 110%; - padding-top: 8px; - padding-bottom: 4px; } h2 { @@ -144,13 +144,15 @@ } .code { - background: #ddddff; + background: khaki; + /* background: #ddddff; */ border: thin solid #000000; font-family: Lucida Console, Courier New, Courier, monospace; margin: 5px 5px 5px 5px; min-width: 600px; padding: 5px; white-space: pre; + font-size: 10pt; } .reference { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cw...@us...> - 2006-05-15 15:11:32
|
Revision: 42 Author: cwilper Date: 2006-05-15 08:11:20 -0700 (Mon, 15 May 2006) ViewCVS: http://svn.sourceforge.net/bvalid/?rev=42&view=rev Log Message: ----------- doc updates Modified Paths: -------------- trunk/src/doc/index.html trunk/src/doc/license/index.html Added Paths: ----------- trunk/src/java/net/sf/bvalid/catalog/package.html trunk/src/java/net/sf/bvalid/locator/package.html trunk/src/java/net/sf/bvalid/package.html trunk/src/java/net/sf/bvalid/util/package.html trunk/src/java/net/sf/bvalid/xsd/package.html Modified: trunk/src/doc/index.html =================================================================== --- trunk/src/doc/index.html 2006-05-11 21:34:06 UTC (rev 41) +++ trunk/src/doc/index.html 2006-05-15 15:11:20 UTC (rev 42) @@ -19,7 +19,7 @@ <ol> <li><a href="#intro">What is BValid?</a></li> - <li><a href="#inst">How to Download</a></li> + <li><a href="#inst">Downloading and Installing</a></li> <li><a href="#api">API Documentation</a></li> <li><a href="#cmdline">Command-Line Utility</a></li> <li><a href="#issues">Known Issues / Bugs</a></li> @@ -47,7 +47,7 @@ <div class="sec2"> - <h2><a name="inst">2. How to Download</a></h2> + <h2><a name="inst">2. Downloading and Installing</a></h2> <p> The latest distribution (source and binary) can be downloaded from <a href="http://www.sf.net/projects/bvalid">http://www.sf.net/projects/bvalid</a> @@ -60,6 +60,10 @@ To begin using bvalid in your own projects, you'll need the required jars (included in the lib/ directory) in your CLASSPATH. </p> + <p> + Note: The binary distribution is compiled for Java 1.4. + Currently, BValid will compile and run with Java 1.4 and Java 1.5. + </p> </div> <div class="sec2"> @@ -207,7 +211,11 @@ versions will also support <a href="http://www.schematron.com/">Schematron</a> and <a href="http://www.relaxng.org/">Relax NG</a> validation. </li> - <li> <code>ValidationException</code> isn't clear about how multiple validation errors are reported.</li> + <li> <code>ValidationException</code> currently only reports multiple errors as a multi-line string. An alternate method (getErrorList?) would be nice.</li> + <li> Javadocs are incomplete (params, returns, throws, and some fields).</li> + <li> Some unit tests still need to be written. In particular, multithreaded + validation tests and whitebox tests for SchemaCatalog and SchemaLocator + implementations.</li> <li> Should the API include more direct support for schema whitelisting? Currently this is possible by writing your own SchemaLocator.</li> </ul> Modified: trunk/src/doc/license/index.html =================================================================== --- trunk/src/doc/license/index.html 2006-05-11 21:34:06 UTC (rev 41) +++ trunk/src/doc/license/index.html 2006-05-15 15:11:20 UTC (rev 42) @@ -106,6 +106,7 @@ </div> </li> +<!-- <li>Jing RELAX NG Validator <div class="copyright"> Copyright © 2001-2003 Thai Open Source Software Center Ltd. @@ -135,6 +136,7 @@ Licensed under the <a href="schematron-license.txt">Schematron License</a>. </div> </li> +--> </ol> <h2><a name="add">Optional Software</a></h2> Added: trunk/src/java/net/sf/bvalid/catalog/package.html =================================================================== --- trunk/src/java/net/sf/bvalid/catalog/package.html (rev 0) +++ trunk/src/java/net/sf/bvalid/catalog/package.html 2006-05-15 15:11:20 UTC (rev 42) @@ -0,0 +1,10 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +</head> +<body bgcolor="white"> + +<code>SchemaCatalog</code> interface and implementations. + +</body> +</html> Added: trunk/src/java/net/sf/bvalid/locator/package.html =================================================================== --- trunk/src/java/net/sf/bvalid/locator/package.html (rev 0) +++ trunk/src/java/net/sf/bvalid/locator/package.html 2006-05-15 15:11:20 UTC (rev 42) @@ -0,0 +1,10 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +</head> +<body bgcolor="white"> + +<code>SchemaLocator</code> interface and implementations. + +</body> +</html> Added: trunk/src/java/net/sf/bvalid/package.html =================================================================== --- trunk/src/java/net/sf/bvalid/package.html (rev 0) +++ trunk/src/java/net/sf/bvalid/package.html 2006-05-15 15:11:20 UTC (rev 42) @@ -0,0 +1,33 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +</head> +<body bgcolor="white"> + +Main package of the BValid API. + +<p> +To use this API, an application will typically: + +<ol> + <li> Get an appropriate <a href="Validator.html">Validator</a> from the + <a href="ValidatorFactory.html">ValidatorFactory</a>.</li> + <li> Call one of the <code>validate(...)</code> methods + on that object (multiple times, from multiple threads, + if needed)</li> + <li> Catch and handle + <a href="ValidationException.html">ValidationException</a>, + as appropriate.</li> +</ol> + +<h2>Related Documentation</h2> + +For additional documentation, please see: +<ul> + <li><a target="_blank" href="../../../../index.html">The BValid User Guide</a> +</ul> + +<!-- Put @see and @since tags down here. --> + +</body> +</html> Added: trunk/src/java/net/sf/bvalid/util/package.html =================================================================== --- trunk/src/java/net/sf/bvalid/util/package.html (rev 0) +++ trunk/src/java/net/sf/bvalid/util/package.html 2006-05-15 15:11:20 UTC (rev 42) @@ -0,0 +1,12 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +</head> +<body bgcolor="white"> + +Miscellaneous utility classes. + +<!-- Put @see and @since tags down here. --> + +</body> +</html> Added: trunk/src/java/net/sf/bvalid/xsd/package.html =================================================================== --- trunk/src/java/net/sf/bvalid/xsd/package.html (rev 0) +++ trunk/src/java/net/sf/bvalid/xsd/package.html 2006-05-15 15:11:20 UTC (rev 42) @@ -0,0 +1,13 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +</head> +<body bgcolor="white"> + +Implementation of the <code>Validator</code> interface for XSD, +and related classes. + +<!-- Put @see and @since tags down here. --> + +</body> +</html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cw...@us...> - 2006-12-22 21:33:14
|
Revision: 49
http://svn.sourceforge.net/bvalid/?rev=49&view=rev
Author: cwilper
Date: 2006-12-22 13:33:14 -0800 (Fri, 22 Dec 2006)
Log Message:
-----------
updated license and release note info in prep for release
Modified Paths:
--------------
trunk/src/doc/index.html
trunk/src/doc/license/index.html
Removed Paths:
-------------
trunk/src/doc/license/asl-1.1.txt
Modified: trunk/src/doc/index.html
===================================================================
--- trunk/src/doc/index.html 2006-12-22 21:20:55 UTC (rev 48)
+++ trunk/src/doc/index.html 2006-12-22 21:33:14 UTC (rev 49)
@@ -49,6 +49,10 @@
<div class="sec2">
<h2><a name="inst">2. Downloading and Installing</a></h2>
<p>
+ Read the <a href="release-notes.txt">release notes</a> to determine
+ what has changed for this release.
+ </p>
+ <p>
The latest distribution (source and binary) can be downloaded from
<a href="http://www.sf.net/projects/bvalid">http://www.sf.net/projects/bvalid</a>
</p>
Deleted: trunk/src/doc/license/asl-1.1.txt
===================================================================
--- trunk/src/doc/license/asl-1.1.txt 2006-12-22 21:20:55 UTC (rev 48)
+++ trunk/src/doc/license/asl-1.1.txt 2006-12-22 21:33:14 UTC (rev 49)
@@ -1,48 +0,0 @@
-/*
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "log4j" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * ap...@ap....
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation. For more information on the
- * Apache Software Foundation, please see <http://www.apache.org/>.
- *
- */
Modified: trunk/src/doc/license/index.html
===================================================================
--- trunk/src/doc/license/index.html 2006-12-22 21:20:55 UTC (rev 48)
+++ trunk/src/doc/license/index.html 2006-12-22 21:33:14 UTC (rev 49)
@@ -70,9 +70,17 @@
to its operation.
</p>
<ol>
+ <li>Apache Jakarta Commons Codec Library
+ <div class="copyright">
+ Copyright © 2002-2004 The Apache Software Foundation.
+ </div>
+ <div class="license">
+ Licensed under the <a href="asl-2.0.txt">Apache Software License 2.0.</a>
+ </div>
+ </li>
<li>Apache Jakarta Commons HttpClient
<div class="copyright">
- Copyright © 1999-2004 The Apache Software Foundation.
+ Copyright © 1999-2006 The Apache Software Foundation.
</div>
<div class="license">
Licensed under the <a href="asl-2.0.txt">Apache Software License 2.0.</a>
@@ -88,11 +96,11 @@
</li>
<li>Apache Log4J
<div class="copyright">
- Copyright © 1999 The Apache Software Foundation.
+ Copyright © 1998-2006 The Apache Software Foundation.
All rights reserved.
</div>
<div class="license">
- Licensed under the <a href="asl-1.1.txt">Apache Software License 1.1.</a>
+ Licensed under the <a href="asl-2.0.txt">Apache Software License 2.0.</a>
</div>
</li>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|