api birds of a feather, xml robert c. leif, ph.d. vice president r &d, newport instruments &...

17
API Birds of a Feather, XML • Robert C. Leif, Ph.D. • Vice President R &D, Newport Instruments & Ada_Med • Tel. (619)582-0437 Email [email protected] • Web: www.newportinstruments.com

Upload: annabella-harvey

Post on 17-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

API Birds of a Feather, XML

• Robert C. Leif, Ph.D.

• Vice President R &D, Newport Instruments & Ada_Med

• Tel. (619)582-0437

• Email [email protected]

• Web: www.newportinstruments.com

How 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.

Which 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

• Standard’s parsimony

– Create new by reusing old standards.

World 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– XSL:fo Formatting language– SOAP Simple Object Access Protocol

The 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!

W3C 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

XML 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

Numbers

• 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.

Real Types are Primitive

XMLType Source ECMA

float IEEE single-precision 32-bit float32

doubleIEEE 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.

Integer Types are Derived

Type & Derivation Sequence ECMA

Min-Inclusive

Max-Inclusive

*integer -infinity infinity

nonPositiveInteger 0

negativeInteger -1

long Int64 -2**63 (2**63) -1

int Int32 -2**31 (2**31) -1

short Int16 -2**15 (2**15) -1

byteSByteInt8 -2**7 (2**7)-1

*Derived From decimal; fractionDigits·= 0

XML 32 bit Integer Equivalent

<simpleType name="Int32_Type">

<restriction base="int">

<minInclusive value="-2147483648"/>

<maxInclusive value="2147483647"/>

</restriction>

</simpleType>

Create Unicode Strings by Addition of fields to Bounded_String

• Encapsulated in generic packages, Ada.Strings.Bounded. & Wide_Bounded

• Solution:

1. Create a generic that instantiates Ada.Strings. Wide_Bounded with a generic type.

2. Add a Character_Set_Type etc. to a private tagged type.

3. Add a Modified version of all of the methods in Ada.Strings.Wide_Bounded

4. Instantiate (Character_Set => Utf16)

XForms 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/

Ada 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

• Interface SOAP with the Ada Distributed Systems Annex

And/or

• CORBA replace IDL with XML?

SOAP

Odds & 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 Wolf’sAdaBrowse Document Type Definition (DTD) into a Schema.

Conclusions & Bottom Line

1. Make the Ada and XML schema data-types the same.

2. Treat the XML presentation tools as a new very important API for a user interface standard.

3. Base new Ada API designs on XML standards.

• Combine SOAP with the Ada Distributed Systems Annex and/or CORBA