DDI Design Rules - draft work
Recommended Guidelines:
UML:
Default Values (TC-167):
Terminology:
"Model Default" When a piece of content like the xml:lang in the DDI Intance tag sets the "default" value to a specific language, so you can pull out a single object and not have to worry about an inherited value for some something
"Binding Default" Example: Version number defaulted to 1.0 in codelists for codeValues
DECISIONS:
Model Default: Anything that can be reused should not have information that has been inherited from a parent object within a specific hierachy. Information should be at the level of the reusable object.
Binding Default: binding level defaults are not allowed
Documentation: Documentation should be provided to implementers and tools creators identifying content that may be consistent throughout an instance (examples: agency ID, decimal delimitor, version number during development, language) and advise providing an option for setting this value throughout the document and allowing the user to overwrite the value at any given location.
Binding creation rules:
General:
Where the binding has a means of dealing with language we should use it, if not we need to create it (example: In JSON we will need to create a structure to specify language tagged strings) (TC-162)
XML:
In creating XML bindings all objects should be expressed as element except xml:lang and xml:space which is a specific attribute of a textual string (TC-162)