A ShofarFile uses the POX or “Plain Old XML” mentality. It is designed to be quickly understandable for someone with no background in XML. In all cases it is encoded as UTF8. It is both the file format on storage devices and the communications method. Advanced or esoteric features of XML, such as namespaces or CDATA, are not used. XML is designed to be human readable but the extensive use of features and the flexibility of XML layout can result in a virtually unintelligible file. A ShofarFile rendered by ShofarNexus has a clean layout that makes the file easy to read even in a simple text editor. A ShofarFile follows the simplicity of file systems where folders can contain folders or files, or computer memory where objects can contain objects or values. In a ShofarFile an element can contain elements or attributes. Text values in elements are valid in XML or HTML but are not used in a ShofarFile. For example “<Jot Text="ABC" />” is valid where “<Jot>ABC</Jot>” is not. This allows for a consistent perspective between file system, computer memory and ShofarFiles. If allow by security a given page can be renders as a ShofarFile with a “.Shofar” extension. For example this page can be view at “/_Help,ShofarFile.Shofar”. Root Element The tag for the root element of a ShofarFile is “Shofar”. For example: <Shofar Identity_="ShofarNexus.com/@" xmlns="http://ShofarNexus.com"> The “Identity_” attribute is rendered to show the source of the file but is ignored when the file is parsed. See the note on naming conventions below. “xmlns="http://ShofarNexus.com"” is present to allow XML editing tools to recognize the file. This will normally be present when a ShofarFile is rendered by ShofarNexus but is ignored when the file is parsed. Root’s Child Elements Root child elements that are defined by this standard will always have tag whose first character is an uppercase ASCII letter (“A” through “Z”). All other valid characters for an XML tag are reserved for private, custom, or experimental use. The first level of elements are defined by Object Definitions. This mechanics provides extremely fast parsing and rendering, simple expandability, and a very small memory footprint for the file. Naming Conventions Naming conventions are used to provide consistency so it can be clearly understood what the data is or how to find it. Element tags and Attribute names that are defined by ShofarNexus will begin with an uppercase ASCII character. Custom defined names start with a lowercase ASCII character or a Unicode character beyond the ASCII set. Attribute names or element tags with an underscore (‘_’) suffix are rendered for informational purposes but are not parsed. For example a count of a list of items may be shown as a “Count_” attribute in the containing element. Another example is the file’s identity (<Shofar Identity_="…" …>). Standard versus development elements and attributes Elements and attributes defined in this standard can be used with confidence. Other elements or attributes that the software may use should be considered developmental and not stable. New elements and attributes may appear and disappear during the development process and released versions of ShofarNexus. |