The XML Processing Plus Plus compiler converts programs written in this language's syntax into Java code that uses standard XML APIs. The language itself provides simple wrapper APIs: XmlIn and XmlOut. XmlIn is used for retrieving data from XML input streams, and XmlOut for inserting data to XML output streams. In addition, it provides a powerful "compile-time debugging" facility based on its type-checker. The type-checker runs inside the compiler and detects problems in the code.