Datatype Validation of XML

ADMS is an XML Format which describes Repositories of Assets.

The terms used in XML Files often require specific datatype formats to assist in interoperability with other formats.

For example, a date can be in the format YYYY-MM-DD (ISO 8601). If no other formats are to be permitted ... "three weeks after my cat's birthday", etc. ... then the XML File must be validated against a schema (XSD File) or Document Type Definition (DTD). Validation serves two (equally important) functions: 1) The date is "understandable" to other applications, and 2) No third-parties will, in the interest of user friendliness substitute their own cat's birthdays without warning. That would be wrong, and unprofessional.

All XML is plain text, but may include binary segments. Behind the scenes, this is non-negotiable, and there is no technical impediment to high level transparency.

XML 1.0 (Fifth Edition) 1.1 Origin and Goals

And

IETF RFC 4646

2.  The Language Tag

   Language tags are used to help identify languages, whether spoken,
   written, signed, or otherwise signaled, for the purpose of
   communication.  This includes constructed and artificial languages,
   but excludes languages not intended primarily for human
   communication, such as programming languages.

Validation is involked in root node of an XML File with properties in the XSI (Schema Instance) Namespace. On some small screen and Mobile Devices, the editing of large XML Documents may prove awkward, if not impossible and text editing facilities may be wildly impractical. However, equipment limitations should not dictate Specification limitations and an archive of an XML File can always be contained in one "envelope" regardless of the (public access) external files which may be needed for validation.

XML Test File with Tagged Marginalia and Comments. This file is valid XML but not valid ADMS XML.

XML Test File non-standard components redacted. This file is both valid XML and valid ADMS XML.

Validation Trace (Validation Errors: none)

Public Access Schema for Example.Org Repository. http://rustprivacy.org/2012/xsd/adms/CoreVocs-ADMS-v0.1.xsd

Off-Line (Local) Schema for Example.Org is not accessable for this demonstration. This is not an oversight, but rather a choice the user should have. Since validation is involked by the XSI Namespace, a local machine copy of the XSD Schema can be identical to the public copy.

A sample Archive/Envelope (XHTML 1.1). Note that the payload need not be extracted from the envelope to validate the payload. (Validation Trace ca. Line 75) However, the file needs to be validated against a schema (XHTML 1.1) which has been modified to accept an embeded block level ADMS XML element. Normally only local validation is practical in this case, but in Bring Your Own Device (BYOD) and Work From Home situations, in-house Source Control and validation can replace complex, centralized, generalized Firewalls. This general security method can be used to retrofit to SCADA systems as well.