api birds of a feather, xml robert c. leif, ph.d. vice president r &d, newport instruments &...
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
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.