• Stars
    star
    21
  • Rank 1,049,110 (Top 22 %)
  • Language
    Ada
  • License
    Other
  • Created about 8 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The XML/Ada toolkit.

XML/Ada: An XML parser for Ada95

INSTALLING THIS LIBRARY ON UNIX

Make sure that you do not have a previous installation of XML/Ada in one of the directories given in ADA_OBJECTS_PATH, or some files will not be properly recompiled.

Compiling with GNAT 3.16 or newer versions of GNAT


You need to automatically detect a few aspects of your build environment,
which is done by running
    ./configure --prefix=PREFIX
where PREFIX is the installation directory you wish to use. It is recommended
to install into the GNAT directory. This way the project files will be
installed into the default location where gnatmake and gprbuild are looking
for projects.

If, however, you are running a cross-compiler, you need to add an additional
command line switch to configure, namely
    ./configure --prefix=PREFIX --target=TARGET
where target will be similar to "powerpc-wrs-vxworks", "powerpc-elinos-linux",
or any other prefix used to find the name of the gnatmake executable to run.

By default, XML/Ada will build both static and shared libraries, if
"configure" detected that the latter were supported on your system. You can
prevent the building of shared libraries by specifying --disable-shared as
an extra switch to configure.

Once installed, your applications will by default be linked statically with
XML/Ada. You can change that default by specifying explicitly --enable-shared
as an extra switch to configure.

To install the library, use the following command line:
   make all install

If your application is built using a runtime which is not the default,
you need to build XmlAda with the same runtime. This is done by simply
adding an RTS=NAME argument to the make command above. For instance,
to build and install the XmlAda library with the "rtp" runtime, adjust
the make command above as follow:

   make all install RTS=rtp

You can also override the default install location by adding the argument
IPREFIX=PATH to the make command above.

Compiling with other Ada compilers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This library has been reported as being compilable with other compilers than
GNAT. No build script is provided however.

INSTALLING THIS LIBRARY ON WINDOWS
----------------------------------

1. Due to the nature of GNU Make you need to have a UNIX-type shell and
   utilities installed to build this library. If you do not have this,
   you can download a set at:

     Cygwin : http://cygwin.com/
     Mingw  : http://www.mingw.org/ (MSYS Toolset)

2. Run 'sh configure --prefix=<installation directory>' to generate the
   makefile.
   where "installation directory" is the place where you want to install
   XML/Ada.

3. Before building make sure to set the following values in 'Makefile':
      PREFIX=C:/GNATPRO/6.4.2
   the makefile where to install the library. Note the slashes in the path!
   The value should have been set properly by the call to configure.

   It is recommended to install into the GNAT directory. This way the project
   files will be installed into the default location where gnatmake and
   gprbuild are looking for projects.

4. As a general rule for GNAT, the temporary directory must be accessible
   from gnatmake native applications (not a cygwin path). For instance, from
   cygwin:
       export TMPDIR=c:/tmp
   Failing to check this might prevent the building of shared libraries

5. The best way to proceed is to do a 'make all install'.
   It is possible that make complains that it cannot execute an "install"
   executable. In such a case, it is recommended to execute
   "make INSTALL=cp install" instead to use "cp" to do the installation

TWEAKING THE LIBRARY
--------------------

You can change the way the library behaves, in particular the DOM part,
by changing some of the hard-coded constants in the code. If you change
these, you will need to recompile the library and your application:

- sax-encodings.ads :: Encoding
  It contains the encoding used internally by the library. The default is
  UTF8, which supports the whole Unicode range, and is economical
  memory-wise

- dom-core.ads :: Shared_Strings  and dom-core.ads :: Shared_Node_Names
  Whether the internal representation of namespaces should be shared among
  nodes. The default is yes

USING THE LIBRARY
-----------------

See the XML/Ada user's guide for information on how to use this library.

TESTING THE LIBRARY
-------------------

Several test programs are provided in the XML/Ada source package. These
are found in the dom/test and sax/test subdirectories. These are very simple
examples on how to use the DOM and SAX API.

The w3c organization has constructed an official testsuite that can be used to
check XML/Ada. Most likely, this is only useful to you if you are modifying
XML/Ada itself. Here is how you can run this testsuite:
   You need to download the official XML Conformance Testsuite for XML,
   The name of the current archive is
       xmlts20080827.tar
   The URL is:
       http://www.w3.org/XML/Test/

   Uncompress it somewhere on your disk, then add a link in tests/dom, which
   points to the directory where you unpackaged the testsuite. The link should
   be called "tests".

A similar setup is required for the W3C schema testsuite. The URL of the
testsuite is:
   http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2006-11-06/xsts-2007-06-20.tar.gz
This file should be extracted in the tests/schema directory (creating a
xmlschema-2006-11-06 subdirectory as a result).

   Then execute the command from the toplevel directory:
       make run_test

   This will report the number of errors found.

The W3C committee has reviewed the status of a number of tests since the
testsuite was released (as developers of XML parsers have reported issues
with the testsuite). They provide a public CVS repository that include the
metadata for the tests (list of tests, their status, expected output,...),
but unfortunately not the tests themselves. As a result, getting the latest
version requires several steps. First get the .tar.gz as described above,
and extract it in schema/test. From the same directory, run:

   cvs -d :pserver:[email protected]:/sources/public login
   cvs -d :pserver:[email protected]:/sources/public -z5 co XML/xml-schema-test-suite/2004-01-14/xmlschema2006-11-06

You can update that directory at any time with:
   cd XML; cvs update

The XML/Ada testsuite will automatically take advantage of that directory
if found. You need however to manually run
   cd schema/test
   ./schematest --cvs
to get the output under those conditions, since "make run_test" is setup
for the .tar.gz output.


CONTENTS OF THE LIBRARY
-----------------------

The sources in this library are split into several subdirectories, each
with its own README, sources, documentation and unit tests.

The list of subdirectories (aka modules) is:

- unicode:
  provides a full support for Unicode and Utf8/Utf16/Utf32 encodings. It also
  support other encodings like Latin1, Latin2, ...

- input_sources
  provides types to read characters from several types of media.

- sax
  Provides a common, standard interface for any XML parser, through
  callback subprograms. You can extend any of the tagged types defined in these
  packages and thus parse XML files without having to store an XML tree in
  memory.
  This package is compatible with SAX 2.0, but doesn't implement the functions
  specific to SAX 1.0

- dom
  The Document Object Model is a set of standard subprograms to manipulate
  XML tree in memory.
  Only the Core module is currently implemented.

- docs
  This contains the full documentation for this XML library

BUG REPORTS
-----------

Please send questions and bug reports to [email protected] following
the same procedures used to submit reports with the GNAT toolset itself.

More Repositories

1

gnatstudio

GNAT Studio is a powerful and lightweight IDE for Ada and SPARK.
Ada
373
star
2

spark2014

SPARK 2014 is the new version of SPARK, a software development technology specifically designed for engineering high-reliability applications.
Ada
235
star
3

Ada_Drivers_Library

Ada source code and complete sample GNAT projects for selected bare-board platforms supported by GNAT.
Ada
229
star
4

ada_language_server

Server implementing the Microsoft Language Protocol for Ada and SPARK
Ada
217
star
5

gnat-llvm

LLVM based GNAT compiler
Ada
173
star
6

libadalang

Ada semantic analysis library.
Ada
142
star
7

aws

AWS is a complete framework to develop Web based applications in Ada.
Ada
123
star
8

RecordFlux

Formal specification and generation of verifiable binary parsers, message generators and protocol state machines
Ada
100
star
9

gsh

A POSIX shell for Windows.
C
97
star
10

learn

Sources for learn.adacore.com
Ada
91
star
11

gtkada

Ada bindings for the GTK+ graphical library.
Ada
84
star
12

langkit

Language creation framework.
Python
75
star
13

gprbuild

GPRbuild is an advanced build system designed to help automate the construction of multi-language systems.
Ada
63
star
14

svd2ada

An Ada binding generator from SVD descriptions for bare board ARM devices.
Ada
61
star
15

bb-runtimes

Source repository for the GNAT Bare Metal BSPs
Ada
61
star
16

ada-spark-rfcs

Platform to submit RFCs for the Ada & SPARK languages
59
star
17

VSS

High level string and text processing library
Ada
49
star
18

gnatcoll-core

GNAT Components Collection – Core packages
Ada
43
star
19

gnatcoverage

GNATcoverage: Coverage Analysis Tool
Ada
32
star
20

Certyflie

Ada
30
star
21

ada-traits-containers

Generic Ada Library for Algorithms and Containers
Ada
28
star
22

why3

SPARK 2014 repository for the Why3 verification platform.
OCaml
27
star
23

e3-core

Core framework for developing portable automated build systems
Python
26
star
24

startup-gen

A startup code generator for embedded projects
Ada
25
star
25

git-hooks

Git hooks Python-based scripts
Python
24
star
26

Ada-IntelliJ

Support for Ada and SPARK languages in IntelliJ IDEA
Java
21
star
27

PolyORB

PolyORB provides a uniform solution to build distributed applications relying either on middleware standards
Ada
21
star
28

OPAVES

Open Platform for Autonomous VEhicle Systems
C
21
star
29

training_material

Ada
20
star
30

Ada-SPARK-Crate-Of-The-Year

19
star
31

gnat_community_install_script

Script to automate the installation of the GNAT Community Installers
Shell
18
star
32

cuda

Ada
17
star
33

spawn

Ada
16
star
34

libadalang-tools

Libadalang-based tools
Ada
16
star
35

gnat-gdb-scripts

GDB scripts for Ada programs built with GNAT
Python
16
star
36

win32ada

Ada API to the Windows library
Ada
16
star
37

Robotics_with_Ada

Robotics with Ada, ARM, and Lego
Ada
15
star
38

embedded-runtimes

runtimes that add support for various boards to the GNAT GPL compiler for ARM
Ada
14
star
39

gnatcoll-bindings

GNAT Components Collection – Bindings to C libraries
Ada
13
star
40

gpr

The framework for analyzing the GNAT Project (GPR) files
Ada
13
star
41

adareducer

Python
13
star
42

qemu

C
12
star
43

gnatcoll-db

GNAT Components Collection – Database packages
C
10
star
44

sparkformal

The project SPARK Formal aims at developing a complete semantics of the SPARK language in Coq.
Coq
10
star
45

UnityAdaTetris

Ada
9
star
46

markdown

Markdown parser
Ada
8
star
47

labs-material

Support Libraries for AdaCore University Labs
Ada
7
star
48

aunit

Ada
7
star
49

ada-py-bind

Ada
6
star
50

e3-testsuite

e3 testsuite driver
Python
6
star
51

RC_Car_Demo

An embedded Ada/SPARK demo
Ada
6
star
52

SPARK_Railway_Simulation_Demo

Ada
5
star
53

templates-parser

AWS templates engine.
Ada
5
star
54

Compile_And_Prove_Demo

Demo project for new web site: Compile It! / Prove It!
Ada
5
star
55

program_proofs_in_spark

This repository contains some programs from Rustan Leino's book "Program Proofs" verified with SPARK.
Ada
5
star
56

spdm-recordflux

5
star
57

RESSAC_Use_Case

A Collaborative Development Assurance Lab
Ada
5
star
58

gnatdashboard

Analyse a project.
Python
4
star
59

florist

Ada
4
star
60

Http_Cyclone

C
4
star
61

gnat-docker

Python
4
star
62

e3-aws

High level interface for CloudFormation
Python
4
star
63

Platinum_Reusable_Stack

Ada
4
star
64

wposix

Ada Windows POSIX binding
Ada
4
star
65

code_examples_server

prototype server for creating interactive "try SPARK / try Ada" webpages
Python
3
star
66

lmod_manager

lmod based management tool for GNAT and SPARK installations
Python
3
star
67

SPARK_PDI_Demo

Use of SPARK to implement Parameter Data Items
Ada
3
star
68

langkit-query-language

query language for Libadalang and Langkit
Java
3
star
69

gprconfig_kb

GPR configuration knowledge base
3
star
70

language-examples

Examples of common software engineering constructs written in Ada and SPARK
Ada
3
star
71

tictactoe

A tictactoe game written and proven in SPARK
Ada
3
star
72

RecordFlux-parser

3
star
73

RecordFlux-devutils

Python
3
star
74

ada_coding_standards

Ada
2
star
75

style_checker

The AdaCore style checker
C
2
star
76

gpr-unit-provider

GPR2 based unit provider for Libadalang
Ada
2
star
77

gnatdoc

GNAT Documentation Generator
Ada
2
star
78

Lunar_Lander_Rotation_Demo

Demonstration program that interacts with the AdaFruit BNO055 breakout board in order to send orientation data to a host computer
Ada
2
star
79

AdaSAT

Ada
2
star
80

training_labs_radar

Ada
2
star
81

uwrap

Ada
1
star
82

cheri-examples

1
star
83

z3

SPARK 2014 repository for the Z3 SMT solver.
C++
1
star
84

lal-checkers

Libadalang-based code checking infrastructure
Python
1
star
85

spark_translator

SPARK 2005 to 2014 translator
Python
1
star
86

Lumos_Maxima

Lumos_Maxima repository for VerifyThis challenge
Ada
1
star
87

training_labs_standalone

Ada
1
star
88

training_labs_solar_system

Ada
1
star
89

alt-ergo

SPARK 2014 repository for the Alt-Ergo SMT solver.
OCaml
1
star
90

lsif-ada

Ada
1
star
91

prettier-ada

Ada
1
star
92

SPARK-to-C_Tetris_Demo

Ada
1
star