Invisible XML repository
  • HTML 54.3%
  • XSLT 31.4%
  • JavaScript 5.4%
  • XQuery 3.8%
  • CSS 3.6%
  • Other 1.5%
Find a file
Norman Walsh ca938ecd62
Merge pull request #336 from ndw/iss-330-xmlns-retry
Add Namespaces in XML and requirement for namespace well-formed XML
2026-02-03 15:44:07 +00:00
.github/workflows Fix CI setup for DeltaXignia 2025-11-13 12:43:35 +00:00
build-tools Update DeltaXignia version 2025-11-13 12:37:43 +00:00
gradle/wrapper Upgrade to Gradle 8.2 2025-02-19 13:06:17 +00:00
misc Fixed markdown markup typo 2025-11-12 16:53:10 +00:00
proposals Rewording of requirement 19 in line with discussion in CG meeting. 2025-09-01 15:32:47 +01:00
samples Mark the samples as explicitly CC0 licensed 2025-10-15 10:58:22 +01:00
schemas Small test catalog update 2023-11-25 15:18:15 +00:00
src Resolved merge conflict 2026-02-03 15:37:36 +00:00
tests extend test to cover Unicode 16 and 17 2025-11-07 12:42:06 +01:00
tools Setup the publishing workflows 2022-10-15 08:16:06 +01:00
.gitignore Setup the publishing workflows 2022-10-15 08:16:06 +01:00
build.gradle Expose CI config to extract stylesheet 2024-06-12 09:02:36 +01:00
BUILDING.md Setup the publishing workflows 2022-10-15 08:16:06 +01:00
gradle.properties Setup the publishing workflows 2022-10-15 08:16:06 +01:00
gradlew Setup the publishing workflows 2022-10-15 08:16:06 +01:00
gradlew.bat Setup the publishing workflows 2022-10-15 08:16:06 +01:00
LICENSE Initial commit 2020-09-21 15:29:38 +02:00
README.md Fix links 2025-10-14 18:22:46 +01:00

ixml

Invisible XML

Data is an abstraction: there is no essential difference between the JSON

{"temperature": {"scale": "C", "value": 21}}

and an equivalent XML

<temperature scale="C" value="21"/>

or

<temperature>
   <scale>C</scale>
   <value>21</value>
</temperature>

since the underlying abstractions being represented are the same.

We choose which representations of our data to use, JSON, CSV, XML, or whatever, depending on habit, convenience, or the context we want to use that data in. On the other hand, having an interoperable generic toolchain such as that provided by XML to process data is of immense value. How do we resolve the conflicting requirements of convenience, habit, and context, and still enable a generic toolchain?

Invisible XML (ixml) is a method for treating non-XML documents as if they were XML, enabling authors to write documents and data in a format they prefer while providing XML for processes that are more effective with XML content. For example, it can turn CSS code like

body {color: blue; font-weight: bold}

into XML like

<css>
   <rule>
      <simple-selector name="body"/>
      <block>
         <property>
            <name>color</name>
            <value>blue</value>
         </property>
         <property>
            <name>font-weight</name>
            <value>bold</value>
         </property>
      </block>
   </rule>
</css>

or

<css>
   <rule>
      <selector>body</selector>
      <block>
         <property name="color" value="blue"/>
         <property name="font-weight" value="bold"/>
      </block>
   </rule>
</css>

depending on choice.

This is an ongoing project to provide software that lets you treat any parsable format as if it were XML, without the need for markup.

Resources

There are five papers on the development:

Software to support ixml will be made available at a later date, but it is already usable via a link; see the tutorial for details.