SETI Markup Language Schema
Schema:
The File Manager was built to a SML schema. This insures uniform construction and meaning of the data. If you would like to help develop the SML schema I would welcome it. Down load SML Spy or some other tool and build your test files. Insure that the NamespaceSchemaLocation information points to this page.
To view the schema itself click here. This will cause your browser to display the schema. Save it for you local use. Also included is a XML file (GeneratedSML.xml)that was generated directly from the schema. You can view it here.
Modifying the Schema |
|
Here some of the nodes are required (Mount, Shape, horn) and otheres are optional (LNA, L1) but the order is unimportant (ALL in XML). This is the LNA In or Out check box. Setting it will add one, and only one LNA node with its attributes. Unsetting it will remove that node. Setting it again will add it back but it may be in a different place in the list of Antenna nodes. The Delphi code for this is stright forward. If the user interface wants an LNA (checkbox it checked) then test for LNA = nil and add it if it is nil. Otherwise you wind up with two LNA nodes and will fail validation. also notice that you don't need to test for a node before you delete it (last line) but you cannot simply say 'Delete('LNA')". It must be 'ChildNodes.Delete('LNA')' |
Here there can be only one Mount child node. Either AzEl, DriftScan or BirdBath. If the Attributes Manufacture and Model exist they must become part of the SML. The Selector symbol follows the Mount Node. In the File Manager Application the Selector is implemented with a TRadioGroup collection of three buttons. So the incomming SML must set the correct Mount Type Selector and modify the underlying SML. If the user changes the Selector the SML must be modified correctly so that the SML still will validate against the SML schema. The Delphi code for it to work is shown below: |