Extensible markup language (XML) prolog is the portion of every XML system that is present before the system’s root element. This is the part of the XML system in which information about the XML programming is defined. There is no standard for XML prolog, but it will usually feature some of the same traits from one system to the next. In some cases, it may even be empty because the user does not want to declare any prolog information. Even if empty, it still exists in every XML system.
The XML prolog is sometimes referred as the XML declaration. It is present in every system, but its usage is optional. When it is used, it typically contains the version information, processing instructions, any comments by the author, and a field for document type definitions, commonly referred to as the doctype. It sometimes also will contain forwarding information to HyperText Markup Language (HTML) if the user wants to merge XML and HTML.
XML prolog will always occur in the first portion of the file. It will never follow behind another section. The only exception is that a byte order mark may precede the XML prolog when certain types of character encodings are used. If this is the case, the byte order mark declares the type of character encoding that was used in the XML system, usually with Unicode transformation format (UTF). There are a range of character encodings available, but UTF-8 and UTF-16 are the most common and recommended encodings; if no byte order mark is specified, computers will read the system as either UTF-8 or UTF-16, the default encodings.
The processing instructions define how the application will process the information within the XML prolog and system. Processing instructions can appear anywhere in an XML system. Only processing instructions in the XML prolog will be considered to be a part of the XML declaration.
Comments, like the processing information, can be found anywhere in the XML system, and only comments in the prolog are considered to be part of the XML prolog. Comments are free text datasets that have no influence on the scripting within the system and are usually there to help the programmer remember something or to tell other programmers something. They often include information about the author, version number or any other information the author want to pass to other script editors. Lastly, some authors will include doctype. This is recommended but still not common practice among authors.