Statically typed XML processing in an object -oriented language

Vladimir Gapeyev, University of Pennsylvania


Class-based object-oriented programming is firmly established as the mainstream technology for application development and is supported by several widely deployed languages, including JAVA and C♯. The Extensible Markup Language (XML) is becoming the ubiquitous standard for data representation, storage and interchange: publishing and content management systems are migrating to it from SGML, its proper dialects (such as XHTML and RSS) are preferred formats for new content on the Web, and it appears at every level of the Web services stack. Consequently, XML is being employed in an increasing number of object-oriented applications. However, the natural techniques for representing, typing and processing XML, which are being perfected in several special-purpose languages such as XPATH, XSLT, XQ UERY, and XDUCE, can be only approximated within the traditional object-oriented framework. To combine the strengths of the two technologies while minimizing friction between them, we have designed, implemented and evaluated an extension of C♯ with a small number of constructs based on regular tree types and patterns adapted from XDUCE. The resulting language, X TATIC, offers native XML manipulation facilities that are powerful, statically typed, and compatible with the object-oriented constructs of C♯. Consequently, XTATIC is backward-compatible with C♯ and retains access to the wealth of its libraries. Several small-to-medium-sized applications were implemented in XTATIC in order to validate its design and to compare its style of programming to other XML processing approaches. These results demonstrate that integration of regular tree types into object-oriented programming is theoretically sound, fully compatible with the object-oriented data model, and practically useful for XML processing.

Subject Area

Computer science

Recommended Citation

Gapeyev, Vladimir, "Statically typed XML processing in an object -oriented language" (2006). Dissertations available from ProQuest. AAI3211074.