Quark, Inc. today introduced QuarkXPress Markup Language (QXML), an XML schema of the World Wide Web Consortium (W3C) Document Object Model (DOM) that will make it even easier for developers to create custom XTensions software for Quark’s industry-leading page-layout software, QuarkXPress. The QXML schema fully describes the QuarkXPress file format in XML and enables QuarkXPress 6.5 XTensions software to be developed using industry standards and a wide variety of development platforms and languages, including Java, .Net, and many scripting languages.

Working with Standards

“For many years, valuable content has been locked in proprietary file formats, while the move towards multi-channel publishing has dictated that it can no longer be used just for print,” said Juergen Kurz, Quark’s vice president of product development. “With an industry-standard methodology for describing the QuarkXPress file format, our customers have greater security because their QuarkXPress content can be easily integrated into today’s complex multi-channel publishing environments.”

Easier Programming

One of the strengths of QuarkXPress is its strong developer community with hundreds of third-party XTensions modules available to augment the functionality of QuarkXPress to meet the diverse requirements of its customers. XTensions software developers have always programmed in C or C++, but with QXML, developers can write XTensions modules for multiple platforms in C++, Java, any language supported on the .Net platform (including C# and VB.Net), and scripting languages (including AppleScript, Perl, JScript and VBScript).

To make development even easier, QXML presents a QuarkXPress project as an XML tree, and any modifications to the XML files change the project—in real time.

The Document Object Model

The Document Object Model (DOM) is a W3C standard that provides a language-neutral interface for applications and scripts to dynamically access and update content, structure and styling of documents.

With QXML, the new DOM schema for QuarkXPress, developers can dynamically access and update the content, structure and style of a QuarkXPress project using a DOM interface. XTensions modules can be more versatile because they can use a project’s complete content, including all formatting, style sheets, hyphenation, and justification specifications. Additionally, developers can run powerful query expressions with just a few lines of code using XPath queries. The same query using C/C++ code would require pages of code.

“While C and C++ are powerful development languages, developers now use a wide variety of development languages. Porting software from other applications and platforms to and from C and C++ can be a lengthy and cost-prohibitive task,” explained QuarkXPress Product Manager Tim Banister. “The creation of QXML radically changes the landscape for XTensions development and lets a brand-new group of developers create custom XTensions software for QuarkXPress—and with it, an even wider variety of solutions for our customers. Quark is absolutely committed to open standards, and this demonstrates the strength of that commitment.”

Example of Simplified Porting

How can QXML simplify development? For example, a publisher has a Java application that uses a Web services protocol to pull TV listings information onto a Web site. The publisher also wants to pull this content into a weekly magazine. Manually importing and styling this data in QuarkXPress takes time, so an automated solution is required. Formerly, developers faced fairly complex issues porting the application from Java to C/C++, and they essentially would be required to rewrite the program. With the QuarkXPress DOM interface, QXML, the complexity of these issues is reduced, and the task is easier and much more manageable.

Future Enhancements

The initial version of QXML allows developers to read data from a QuarkXPress project. In the next version, developers will be able to both read from and write to QuarkXPress projects.


The QXML developer kit is available immediately to certified QuarkXPress XTensions developers. Developers can choose to develop XTensions modules using the QuarkXPress XTensions Developer Kit (XDK), QXML, or both. For more information about becoming a QuarkAlliance XTensions developer, visit the Quark Web site at http://www.quark.com/partners/xtdevelopers/desktop/requirements.html.