The increased importance of XML as a data representation format has led to several proposals for facilitating the development of applications that operate on XML data. These proposals range from runtime API-based interfaces to XMLbased programming languages. The subject of this paper is XJ, a research language that proposes novel mechanisms for the integration of XML as a first-class construct into JavaTM . The design goals of XJ distinguish it from past work on integrating XML support into programming languages -- specifically, the XJ design adheres to the XML Schema and XPath standards. Moreover, it supports inplace updates of XML data thereby keeping with the imperative nature of Java. We have built a prototype compiler for XJ, and our preliminary experiments demonstrate that the performance of XJ programs can approach that of traditional low-level API-based interfaces, while providing a evel of abstraction. Categories and Subject Descriptors: D.3.3[Software]: Programming Languages...