Document (dev.stxt.namespace): Documents with namespace Navigation: Previous: Previous (raw-docs) Next: Next (compact) Header: Documents with namespace Assert: Everything explained for documents without namespace is applicable, except for multiline nodes. Content: As a previous summary: * Always UTF-8 Encoding * Identifiers are CASE-INSENSITIVE * There are no escape characters * In STxT, all lines starting with the character # are comments * 4 spaces are equivalent to a tab Assert: The use of `:` for multiline nodes is not allowed.\ This is implied by the node type. Content: If the character `:` is inserted, what will happen is that it will become part of the text, it will not be considered special. The other types of text do not allow multiple lines, so it will have no effect. Subheader: Namespace definition Content: A namespace is a document without namespace with the first node called `Namespace`, which is a structure with all possible node types, as an example. Assert: A node is defined only once, after that it cannot be redefined.\ It is allowed to appear before as long as the structure is not defined. Content: Let's look at an example: Code: Namespace: www.demo.com/documento.stxt Documento: Title: (1) ***Sections: (?)*** Description: (1) TEXT Document Type: (1) ENUM :report :article :essay ***Sections:*** ***Section: (+) TEXT*** Content: Another simpler way to define it would have been: Code: Namespace: www.demo.com/documento.stxt Documento: Title: (1) ***Sections: (?)*** ***Section: (+) TEXT*** Description: (1) TEXT Document Type: (1) ENUM :report :article :essay Content: Finally, a document from the namespace: Code: Documento (www.demo.com/documento.stxt): Title: First simple document Description: This is the first simple document. It has several lines Document Type: report Sections: Section: This is a section Section: This is a section with more than one line. Subheader: Quantity definition Content: It is allowed to define the quantity of nodes as follows: * `?`: May or may not appear (maximum 1) * `+`: At least one node * `*`: Any number of nodes * `num+`: _num_ or more nodes * `num-`: _num_ or fewer nodes * `num`: exactly _num_ nodes Subheader: Node types Content: The following node types are allowed: * `STRING` (Default value) * `TEXT` (allows multiline, does not allow child nodes) * `NUMBER`: /^(\-|\+)?\d+(\.\d+(e(\-|\+)?\d+)?/ * `BOOLEAN`: true | false * `REGEX`: valid regex * `ENUM`: The following multilines show the valid values * `DATE`: YYYY-MM-DD * `TIMESTAMP`: ISO_8601 * `EMAIL`: valid email * `URL`: valid url * `HEXADECIMAL` (allows multiline, does not allow child nodes) * `BASE64` (allows multiline, does not allow child nodes) * `EMPTY`: does not allow content * `INTEGER`: (+|-)?\d+ * `NATURAL`: \d+