This document is part of project documentation eXtensible Binary Universal Protocol. It contains restrictive conditions that should be met when creating custom blocks in the XBUP protocol.
When creating data formats it is necessary to keep certain design rules to achieve the best possible outcome. These rules will be gradually formed by experience, so as to simplify as much as upwards of new format, minimizing the number of errors made in the design and to achieve the most appropriate shape of the block, the order and number of attributes.
When creating a new definition of a document it is especially important to determine if there is no other better equivalent format that could be used. The whole format should be also prepared carefully so that it doesn't have to be repaired frequently in the future.
When you create a block without the existence of any draft, you should also focus on the order of attributes and sub-blocks. The aim of these rules is also to lead author and to simplify the whole process of definition of the block and help them to avoid common errors.
Preferably, there are certain rules known for database relations you can use (database normal form):
Other rules should lead the creators to accept locales support.
Another of the rules are resulting from efforts to minimize the size of the block …
It is not always appropriate to include an attribute. Sometimes it is preferable to create a sub-block for this attribute, and refer to it instead. This applies for example in the following cases:
The primary goal is to bring the attributes by frequency of use of the most widely used by the least used. This allows to cut the size of the block for non-used attributes and save space.
When defining a block it should also follow this rule, which says that each block definition should refer only to block content itself, as attributes in object programming. While it should not be referenced by the characteristics of the parent, the child is in some cases blocks can be used.
Example of incorrect use:
Properties of subordinate units is appropriate to include in the following cases:
Parameterization rule determines when the appropriate parameters or attributes to merge with the definition of the type of block. The worst case is to circumvent the block type, the value for the same type of block is used alternative pairs of values that define the true meaning of the block. The following list describes the cases where it is advisable to avoid use of the attribute or parameter:
Diverse blocks should not belong to the same group. The following rules should lead to proper group organization for document.
If possible, you should try to fit the definition of a block on the existing scheme. The following list shows the patterns of blocks and their attributes recommended, as it should be used. It is something akin to design patterns.
(Obsolete) list of schema defines the structure and order with items on them. This scheme has been described in level 1 for definition list specification for the types of items. All items in the list should be the same type, or this type of transform.
(Obsolete) A collection is similar to the list, in which individual items may be of various types.
The connecting block is associated with high risk of failure consistency. Therefore, the blocks, which are calculated with the interconnection should be designed to allow for the fact that they are possibly placed in the same file.
Homepage: http://xbup.org
License: GNU Free Documentation License (FDL)