James Clark (programmer)

Last updated

James Clark
Born
James Jackson Clark

(1964-02-23) 23 February 1964 (age 60)
Education Charterhouse School
Alma mater University of Oxford (BA)
Known for
SpouseJoy Chanpen
Children1
Relatives
Family Sainsbury family
AwardsXML Cup (2001) [1]
Scientific career
Fields
InstitutionsThai Open Source Software Center
SIPA
WSO2 [2]
Website www.jclark.com OOjs UI icon edit-ltr-progressive.svg

James Clark (born ) is a software engineer and creator of various open-source software including groff, expat and several XML specifications. [1] [3] [4] [5]

Contents

Education and early life

Clark was born in London and educated at Charterhouse School and Merton College, Oxford where he studied Mathematics and Philosophy. [1]

Career

Clark has lived in Bangkok, Thailand since , and is permanent Thai resident. He owns a company called Thai Open Source Software Center, which provides him a legal framework for his open-source activities. Clark is the author and creator of groff, as well as an XML editing mode for GNU Emacs.

Work on XML

Clark served as technical lead of the working group that developed XMLnotably contributing the self-closing, empty element tag syntax, and the name XML. His contributions to XML are cited in dozens of books on the subject.[ citation needed ] Clark is the author or co-author of a number of influential specifications and implementations, including:

Clark is listed as a member of the working group that developed the Java Stream processing API for XML (StAX) JSR 173 at the JCP. [11]

Software Industry Promotion Agency (SIPA)

From until late , Clark worked for Thailand's Software Industry Promotion Agency (SIPA), to promote open source technologies and open standards in the country. This work included pushing the Thai localization of OpenOffice.org office suite and the Mozilla Firefox web browser, along with other open source software packages.

Other projects at SIPA include:

Related Research Articles

<span class="mw-page-title-main">XML</span> Markup language by the W3C for encoding of data

Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The World Wide Web Consortium's XML 1.0 Specification of 1998 and several other related specifications—all of them free open standards—define XML.

In computing, the term Extensible Stylesheet Language (XSL) is used to refer to a family of languages used to transform and render XML documents.

XSLT is a language originally designed for transforming XML documents into other XML documents, or other formats such as HTML for web pages, plain text or XSL Formatting Objects, which may subsequently be converted to other formats, such as PDF, PostScript and PNG. Support for JSON and plain-text transformation was added in later updates to the XSLT 1.0 specification.

In computing, the Java API for XML Processing (JAXP), one of the Java XML application programming interfaces (APIs), provides the capability of validating and parsing XML documents. It has three basic parsing interfaces:

DocBook is a semantic markup language for technical documentation. It was originally intended for writing technical documents related to computer hardware and software, but it can be used for any other sort of documentation.

<span class="mw-page-title-main">Apache Xalan</span>

Xalan is a popular open source software library from the Apache Software Foundation, that implements the XSLT 1.0 XML transformation language and the XPath 1.0 language. The Xalan XSLT processor is available for both the Java and C++ programming languages. It combines technology from two main sources: an XSLT processor originally created by IBM under the name LotusXSL, and an XSLT compiler created by Sun Microsystems under the name XSLTC. A wrapper for the Eiffel language is available.

REgular LAnguage description for XML (RELAX) is a specification for describing XML-based languages. A description written in RELAX is called a RELAX grammar.

In computing, RELAX NG is a schema language for XML—a RELAX NG schema specifies a pattern for the structure and content of an XML document. A RELAX NG schema is itself an XML document but RELAX NG also offers a popular compact, non-XML syntax. Compared to other XML schema languages RELAX NG is considered relatively simple.

Schematron is a rule-based validation language for making assertions about the presence or absence of patterns in XML trees. It is a structural schema language expressed in XML using a small number of elements and XPath languages. In many implementations, the Schematron XML is processed into XSLT code for deployment anywhere that XSLT can be used.

Saxon is an XSLT and XQuery processor created by Michael Kay and now developed and maintained by his company, Saxonica. There are open-source and also closed-source commercial versions. Versions exist for Java, JavaScript and .NET.

An XML schema is a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntactical constraints imposed by XML itself. These constraints are generally expressed using some combination of grammatical rules governing the order of elements, Boolean predicates that the content must satisfy, data types governing the content of elements and attributes, and more specialized rules such as uniqueness and referential integrity constraints.

XPath 2.0 is a version of the XPath language defined by the World Wide Web Consortium, W3C. It became a recommendation on 23 January 2007. As a W3C Recommendation it was superseded by XPath 3.0 on 10 April 2014.

<span class="mw-page-title-main">Makoto Murata</span> Japanese computer scientist (born 1960)

Makoto Murata is a Japanese computer scientist, Ph.D. in engineering, and Project Professor at Keio University.

<span class="mw-page-title-main">Oxygen XML Editor</span>

The Oxygen XML Editor is a multi-platform XML editor, XSLT/XQuery debugger and profiler with Unicode support. It is a Java application so it can run in Windows, Mac OS X, and Linux. It also has a version that can run as an Eclipse plugin.

XPath is an expression language designed to support the query or transformation of XML documents. It was defined by the World Wide Web Consortium (W3C) in 1999, and can be used to compute values from the content of an XML document. Support for XPath exists in applications that support XML, such as web browsers, and many programming languages.

Content Assembly Mechanism (CAM) is an XML-based standard for creating and managing information exchanges that are interoperable and deterministic descriptions of machine-processable information content flows into and out of XML structures. CAM is a product of the OASIS Content Assembly Technical Committee.

XQuery is a query and functional programming language that queries and transforms collections of structured and unstructured data, usually in the form of XML, text and with vendor-specific extensions for other data formats. The language is developed by the XML Query working group of the W3C. The work is closely coordinated with the development of XSLT by the XSL Working Group; the two groups share responsibility for XPath, which is a subset of XQuery.

<span class="mw-page-title-main">XML transformation language</span> Type of programming language

An XML transformation language is a programming language designed specifically to transform an input XML document into an output document which satisfies some specific goal.

Zorba is an open source query processor written in C++, implementing

References

  1. 1 2 3 Clark, James (2020). "James Clark Biography". jclark.com. Archived from the original on 24 July 2020.
  2. Anon (2020). "WSO2 Team". wso2.com.
  3. Clark, James (2020). "James Clark's Random Thoughts". blog.jclark.com.
  4. Clark, James (1 July 2001). "A Triumph of Simplicity: James Clark on Markup Languages and XML". Dr. Dobb's Journal (Interview). Interviewed by Kim, Eugene Eric. Archived from the original on 24 February 2002.
  5. James Clark on X OOjs UI icon edit-ltr-progressive.svg
  6. 1 2 Jones, Christopher A.; Drake, Fred L.; Drake, Fred L. Jr. (2002). Python and XML. "O'Reilly Media, Inc.". p. 21. ISBN   9780596001285.
  7. Cover, Robin. "Tree Regular Expressions for XML (TREX)". xml.coverpages.org. Retrieved 6 March 2019.
  8. "Schema Wars: XML Schema vs. RELAX NG". webreference.com. Archived from the original on 4 March 2019. Retrieved 11 May 2019.
  9. "Jing". relaxng.org.
  10. Clark, James. "XML Namespaces". jclark.com. Retrieved 17 September 2015.
  11. "The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 173". jcp.org.
  12. "Default OaO Sedo Frameset". suriyan.org.
  13. "Suriyan Linux Live CD". 11 February 2008. Archived from the original on 11 February 2008.