.. _libCellMLCurrentThinking: ============================== Current Thinking for libCellML ============================== This document simply outlines some of the current rationale that has an influence on how the codebase is developed. - Temporarily dealing with external documents that are stored on the local file system (relative to the current CellML model document). - Allows testing of the most common model import scenario (local files addressed with a relative URL). - Absolves libcellml from fetching files and communicating across the Internet. - Expect to provide another layer that would perform this role as a libCellML I/O library, which would allow the removal of this temporary inclusion. - No avenue to retrieve remote external references. - Serialise and deserialise from a string. - Present a useful interface not one tied to the `XML `_ serialisation structure. - Validation is quite separate (you are free to make invalid `CellML `_ models). - Public API treats MathML as strings only. - Internal to the code generation we are currently creating our own `MathML `_ object model based on an abstract syntax tree. - Minimal implementation to support the immediate requirement of code generation. - Expect to provide another layer that would handle MathML as a separate thing, potentially linking back to the advanced functionality envisions for symbolic analysis of the model. - Internal to the validator, the MathML strings are parsed into a DOM for use in schema validation against the MathML schema.