|
|
Introduction
to ConciseXML
ConciseXML
is an open, language-independent markup syntax compatible with XML 1.0.
Concise XML is designed to handle different types of data which includes
non-hierarchial data, program logic, document markup, and binary data.
As ConciseXML is both concise and precise, it eliminates the two major
limitations of XML and extending the use of XML. Most of the developers
avoid XML in many circumstances due to its verbosity.
_______________________________________________
_______________________________________________
ConciseXML
is as concise at representing logic as the semi-colon delimited syntax
of C, C++, Java, and C#. In addition, ConciseXML is as concise as the
Comma Separated Value (CSV) syntax for data. ConciseXML has no ambiguity
of meaning. There is only one way to represent parts/fields of an object.
Whereas in XML, there can be many syntactic forms for the identical meaning
or semantics.
ConciseXML
is compatible with XML, but does not conform to XML or SGML. ConciseXML
is a superset of XML. This means that the only extensions are the ones
that remove the XML constraints and does not change the fundamental features
of XML. ConciseXML is capable enough of maintaining both forward-compatibility
as well as backward-compatibility with XML. Any XML document is also a
valid ConciseXML document. You can represent any ConciseXML document in
XML without any loss of information. There is a corresponding form in
XML for each ConciseXML extension to XML. A ConciseXML expression or document
can mix and match ConciseXML and XML syntax at all levels. ConciseXML
is mistaken to be not compatible with XML, as ConciseXML uses a different
syntax and not the XML syntax. The syntax of ConciseXML eliminates many
constraints from SGML's document-centric perspective. However, ConciseXML
is compatible with XML, as any XML document is also a valid ConciseXML
expression.
ConciseXML
makes XML more flexible by eliminating many of the unnecessary constraints
of XML. Some of the extensions of ConciseXML include attribute values
can be any expression, attribute keys can be any object, tagname of an
element can be any expression, attribute keys are optional, closing tagname
is optional, and top-level can be any expression, not just an element.
Additional extensions of ConciseXML include multiple top-level expressions,
attribute type, and paths. Now let us see each of the extensions of ConciseXML
briefly in the following sections.
_______________________________________________
_______________________________________________
XML requires
that all the values assigned to the attributes be quoted. As a result,
all values are only of type string. Elements are often used to work around
this limitation, but that presents another set of problems. In XML, an
attribute key cannot start with a digit and cannot contain angle-brackets.
As a result, the attribute keys are only of type string. ConciseXML makes
use of a call syntax to easily represent array-like fields with integer
keys as well as any object. ConciseXML allows you to have any expression
as the tagname of an element. The tagname may be a path or a call/tag.
In the Comma
Separated Value (CSV) syntax and in all the other major programming languages,
field or argument values are given by position and not by keyword. ConciseXML
allows closing tagname to be optional, which removes the unnecessary clutter.
But when ConciseXML is used as the syntax for dynamic languages, the tagname
may not be known until runtime, and therefore the closing tagname must
be optional. Concise XML allows top-level to be any expression and not
just an element, as it is extremely difficult to create a document whose
value is a simple type such as a string, number, or boolean value in XML
1.0.
The CSV file
format and most of the common programming languages allow multiple top
level expressions. XML 1.0 only allows a single root element in a file,
while ConciseXML permits any number of expressions at the top level. ConciseXML
allows the attributes to have an optional type that is delimited by an
equal sign, in addition to a key and a value. You can join two expressions
using dots. Paths are frequently used in programming language for expressing
the traversal of a data structure or control flow between processing stages.
These are some of the extensions of ConciseXML.
A ConciseXML
expression can be a simple value such as a number, a string, true, false,
and null, a complex value, a path which is a sequence of other expressions
separated by dots, a name that references another expression. The standard
file extension for the ConciseXML syntax is .cxs. A lowercase file extension
is preferred over uppercase. The mime-type for ConciseXML is text/cxs.
Programs that store file data in ConciseXML format prefer to use a file
extension that relates to the application.
ConciseXML
Reduced is a minimal subset of ConciseXML that is very simple to use.
The ConciseXML Reduced loses full forward compatibility with XML. ConciseXML
Reduced enables you to develop very small and simple parsers. A complete
ConciseXML Reduced parser can be 1000 times smaller than an XML parser.
The syntactic forms that are supported in XML 1.0, but not supported in
ConciseXML Reduced include Namespaces: <foo:bar .../>, XML tag:
<? ... ?>, Processing instructions: <! ... >, in-line DTD,
processing instructions (PI), special comment tag: <!-- ... -->,
binary data, non-character XML entities, and quotes in the content area
of an element.
ConciseXML
encoding is a concise and precise way to represent data using the XML
1.0 syntax. The common XML encoding styles suffer from both the traditional
verbosity and ambiguity of XML, as the elements are used to represent
both instances as well as fields of instances. The ConciseXML encoding
format is an alternative to the more common SOAP-encoding or Document-encoding
styles. The main advantage of ConciseXML encoding is that it clearly distinguishes
between the instances and the fields of instances. Another advantage of
ConciseXML encoding is that it supports unkeyed arguments, values holding
any object, and keys of any type.
Most of the
common XML parsers either use a document-object model (DOM) or an event
model such as Simple API for XML (SAX). A program then needs to be written
to translate the XML into the object model of an underlying language.
The translation step is avoided totally, as the ConciseXML-style unambiguously
maps to a precise data model. The XML API to a ConciseXML-style becomes
much cleaner because it has the same data model as a traditional data
or knowledge representation. There are just fields of objects and no attributes
or elements.
_______________________________________________
_______________________________________________
FREE
Subscription
Subscribe to our mailing list and receive new articles
through email. Keep yourself updated with latest
developments in the industry.
Note
: We never rent, trade, or sell my email lists to
anyone.
We assure that your privacy is respected
and protected.
_______________________________________
Recommended
XML Books
|
|
| FREE
Subscription Stay
Current With the Latest Technology Developments Realted to XML. Signup for Our
Newsletter and Receive
New Articles Through Email. Note
: We never rent, trade, or sell our email lists to anyone. We assure that
your privacy is respected and protected.
|
|