This repository contains java code for NeXML processing. The repository is organized in the following subfolders:
model contains the DOM-based core java 5 NeXML reading/writing API, inside
src/main/java
as well as JUnit tests inside src/tets/java
. The API consists of
interfaces in the org.nexml.model
package and implementations thereof in the
org.nexml.model.impl
package.
mesquite_module contains NeXML import/export functionality for
mesquite. This subfolder structure contains classess
(inside src/main/java
) that depend on the org.nexml.model.*
architecture.
In addition there are resource files: properties files that map between certain annotation
namespaces and/or predicates as encountered in NeXML files, and the Java handler classes
that are to be dynamically loaded to operate on them; and a default Tree Style Sheet (TSS)
file for marking up tree visualizations.
validator contains a Xerces-J-based XML validator (written by Terri Liebowitz of the San Diego Supercomputing Center, with modifications by Mark Holder) and a ValidateNeXML class that does essentially the same thing, but more tailored to NeXML specifically.
transformer contains a class that transforms NeXML documents into CDAO documents using the xslt stylesheets found in $NEXML_ROOT/xslt.
jars contains dependencies for the code in the model
folders and folders that
depend on this (i.e. mesquite_module
).
resources contains an example classpaths.xml
file for mesquite's
system for loading other projects.
build.sh
is a simple shell script that invokes ant, using the build.xml
to build and
install the NeXML/Java deliverables on the NeXML website (i.e. you probably don't need to
run this yourself, ever).
The java libraries use ant for building and testing. The following targets are available:
validator
- this builds a jar that contains validator.ValidateNeXML
which validates
XML documents against the NeXML schema, validator.XmlValidator
which validates XML
documents against any command-line specified XML schema and transformer.NeXML2CDAO
,
which transforms a NeXML document into a CDAO document. The target also includes all
prerequisites into the jar, i.e. saxon and xerces, which it finds in the jars/ folder.
To run transformer.NeXML2CDAO
, the NEXML_ROOT environment variable needs to point at the
folder which contains the xslt folder with the RDFa2RDFXML.xsl and nexml2cdao.xsl
stylesheets.
mesquite
- this builds a zip file with classes for NeXML I/O in Mesquite. The
following caveats apply here: i) You will need Mesquite version 2.74 or higher. This is
because the NeXML I/O requires a recent version of NameReference.java
, which is part of
Mesquite's internal system for managing key/value annotations. (This new version has getters
and setters to specify namespaces for the keys, which is what NeXML's semantic annotation
system needs.); ii) the NeXML extension uses java generics, so it requires java version
1.5 or higher. Mesquite itself is designed to be compatible with java 1.4 (or higher), but
for the NeXML extension to work, you will need a more recent java vm; iii) the ant target
uses the MESQUITE_ROOT environment variable to construct the part of its class path that
contains the mesquite classes against which the extension is compiled. This environment
variable points to the root folder of mesquite, which is typically a folder called
Mesquite_Folder. To install the extension, you can either use mesquite's system for
loading other projects to point to the unzipped contents of the mesquite-nexml.zip file
this target produces, or, easier, use the mesquite-install
target.
mesquite-install
- this target first builds the mesquite extension, then merges it
into the mesquite project specified by the MESQUITE_ROOT environment variable.
jar
- this target builds the core nexml library This jar can also be installed from
the maven repository on the nexml web server, i.e. in your pom.xml do something like this:
<repository>
<id>m2.nexml.repos</id>
<name>NeXML Remote Repository</name>
<url>[http://nexml.github.io/maven/repository](https://nexml.github.io/nexml.java/maven_repo)</url>
</repository>
<!-- .... and further down.... --->
<dependency>
<groupId>org.nexml.model</groupId>
<artifactId>nexml</artifactId>
<version>1.5-SNAPSHOT</version>
</dependency>
test
- this target runs JUnit tests on the core nexml library. To run these, the
NEXML_ROOT environment variable needs to point at the folder which contains the examples
folder with NeXML example documents.