Overview of UMarks Tags
UMarks is an XML-based system that aims to capture an individual’s bookmark collection in a simple file format that is easy to create and maintain. Each UMarks file is made up of three main elements: containers, separators and links. The only other elements are a global timestamp and the root tag that encloses all other elements.
None of the tags used have attributes, with all content being standard values using clearly defined data types. It is, therefore, designed to be easy to read from and write to.
The global timestamp can only appear once, however the main content tags (container, separator, link) have no limits i.e. they can appear an unlimited number of times, including zero. With the exception of the global timestamp, which must be listed first, the other elements can be added and listed in a relatively loose order as long as they stick to the overall plan.
This allows UMarks to use a very simple listing format: each of the main elements that make up a file are not nested within each other, they are listed independently, albeit grouped in a strict order.
<umarks>
<!-- Global Timestamp (Single instance) -->
<!-- Containers (0 to unlimited) -->
<!-- Separators (0 to unlimited) -->
<!-- Links (0 to unlimited) -->
</umarks>
<umarks> (Root element)
The <umarks> tag is the root element that encloses all others. It must be present and has no content; it can only contain tags.
<file-updated>
This is the global timestamp that records the last update time for any changes to the file. It exists to allow easy syncing: applications can check this tag first to see if any changes have been made since the last update. It is a required tag and can only appear once, before all other elements.
<container>
This tag defines the elements in a UMarks file that can contain other elements i.e. other containers, separators and links. These would typically be rendered as folders in most bookmark systems, and they contain all the information needed to define them e.g. their name and location within the bookmark hierarchy.
A UMarks file can contain an unlimited number of containers, including zero, and they must be added after the <file-updated> element and before other elements.
<separator>
This tag creates visual separators that many bookmark systems use to help group and separate links and folders. These are typically rendered as horizontal lines with space above and below.
UMarks can contain an unlimited number of separators, including zero, and are placed after containers and before the list of links.
<link>
The <link> tag contains every element needed to define a resource such as a URL or a document e.g. a link to a webpage. It contains a number of sub-tags to achieve this, many of which are optional.
Like the other main tags a UMarks file can contain an unlimited number of links, including zero, and these are listed last in the file, after all the other elements.
