Title: API Birds of a Feather, XML
1API Birds of a Feather, XML
- Robert C. Leif, Ph.D.
- Vice President R D, Newport Instruments
Ada_Med - Tel. (619)582-0437
- Email rleif_at_rleif.com
- Web www.newportinstruments.com
2How do we work together on APIs?
- Commercial developers should provide sources and
there should be no cost for single and
educational uses. - ADA DEVELOPERS COOPERATIVE LICENSE,
www.newportinstruments.com - Software Developers Cooperative,
http//www.softdevelcoop.org/ - http//groups.yahoo.com/group/softdevelcoop/
- GNU licenses include Other forms of licensing
will be considered.
3Which Standard(s)?Requirements
- Sources and materials available for free
- On the web
- No hidden patents or unreasonable royalties.
- Operating system independent.
- Must support Windows, Linux, and Macintosh
- Reasonable design
- Standards parsimony
- Create new by reusing old standards.
4World Wide Web Consortium (W3C)http//www.w3.org/
- Only reasonable choice
- XML eXtensible Markup Language
- Schema Data-Types
- SVG Scalable Vector Graphics
- XForms Forms for the Web
- XSLfo Formatting language
- SOAP Simple Object Access Protocol
5The Browser will be the GUI
- Eliminates duplicate application programming
interfaces for the operating system and the web. - Provides portability between operating systems.
- Open to all.
- Excellent opportunity for Ada!
6W3C Compound Document Formats Ada program
output
- Combine multiple formats
- XHTML for hypertext
- Extensible HyperText Markup Language
- SVG for graphics
- Scalable Vector Graphics
- SMIL
- Synchronized Multimedia Integration Language
- XForms for forms on the web
7XML Schema
- Ada button In Strong Typing We Trust
- Best argument for schema vs. DTD.
- XML schema can and should have Ada semantics.
- Need tools for bidirectional translation of
data-types. - Goal XML_Io.
- Provides strongly typed output from Ada programs.
- Facilitates development of applications that
include XML data. - Permits the use of W3C Designs
- Ada and Web modes
8Numbers
- Create the same numeric types for both.
- Ecumenical approach use ECMA types.
- http//www.ecma.ch/
- Originally, European Computer Manufacturers
Association - Now, ECMA International - European association
for standardizing information and communication
systems.
9Real Types are Primitive
XML Type Source ECMA
float IEEE single- precision 32-bit float32
double IEEE double-precision 64-bit float64
decimal W3C decimal
Minimum of 18 Digits. Pentium uses double extended precision floating point registers. PowerPC uses floating point registers for fixed-point. Minimum of 18 Digits. Pentium uses double extended precision floating point registers. PowerPC uses floating point registers for fixed-point.
10Integer Types are Derived
Type Derivation Sequence ECMA Min- Inclusive Max- Inclusive
integer -infinity infinity
nonPositiveInteger 0
negativeInteger -1
long Int64 -263 (263) -1
int Int32 -231 (231) -1
short Int16 -215 (215) -1
byte SByte Int8 -27 (27)-1
Derived From decimal fractionDigits 0
11XML 32 bit Integer Equivalent
- ltsimpleType name"Int32_Type"gt
- ltrestriction base"int"gt
- ltminInclusive value"-2147483648"/gt
- ltmaxInclusive value"2147483647"/gt
- lt/restrictiongt
- lt/simpleTypegt
12Create Unicode Strings by Addition of fields to
Bounded_String
- Encapsulated in generic packages,
Ada.Strings.Bounded. Wide_Bounded - Solution
- Create a generic that instantiates Ada.Strings.
Wide_Bounded with a generic type. - Add a Character_Set_Type etc. to a private tagged
type. - Add a Modified version of all of the methods in
Ada.Strings.Wide_Bounded - Instantiate (Character_Set gt Utf16)
13XForms 1.0W3C Recommendation 14 October 2003
- XForms model, instance data, and user interface
- Separates presentation from content
- Benefits reuse, strong typing, reduction of
round-trips to the server, device independence,
and a reduces the need for scripting. - XForms
- Not a free-standing document type
- Integrated into XHTML or SVG.
- Examples from http//www.formsplayer.com/
14Ada GUI based on SVG XForms
- Could be based on either CLAW or GNAVI
- Need thick binding for operating system
independence - Standard Ada implementation based on SVG
data-types produces output to be executed by
operating system - or
- outputs SVG
- XForms can primarily be an SVG application
15SOAP
- Interface SOAP with the Ada Distributed Systems
Annex - And/or
- CORBA replace IDL with XML?
16Odds Ends
- A complete description of Ada in XML schema would
permit the use of an XML based word processor as
a program editor. - The design documentation and the source could be
connected by hypertext links. - To begin this,I Translated Thomas
WolfsAdaBrowse Document Type Definition (DTD)
into a Schema.
17Conclusions Bottom Line
- Make the Ada and XML schema data-types the same.
- Treat the XML presentation tools as a new very
important API for a user interface standard. - Base new Ada API designs on XML standards.
- Combine SOAP with the Ada Distributed Systems
Annex and/or CORBA