# Formal Public Identifier

Un Formal Public Identifier (FPI, o Identificador Público Formal) es una cadena pequeña de texto especialmente formateado que puede ser usado para identificar únicamente un producto, especificación o documento. Uno de sus usos más comunes es ser parte de una definición de tipo de documento, pero también son usados en los formatos vCard y iCalendar para identificar el software que ha generado los datos.
Más recientemente, las URIs y las UUIDs son usualmente utilizados para identificar objetos. Las FPIs se han convertido en un sistema heredado.

## Sintaxis

Un ejemplo de identificador "-//W3C//DTD XHTML 1.0//EN" puede ser divididos en dos partes: la parte de la identificación del dueño, el cual indica el mantenedor de la FPI, y el texto de identificador, el cual indica el objeto o documento particular que el FPI identifica. En el ejemplo, la identificación del dueño es "-//W3C" y el texto de identificación es "DTD XHTML 1.0//EN". Las dos partes están separadas por dos diagonales.
Los identificadores de dueños que van prefijados de "-//" indican dueños no registrados (la W3C es un ejemplo notable, ya que no tiene registrado su FPI) Los identificadores de dueños registrados van prefijados por "+//", y un número de identificadores asignados por la ISO no requieren prefijo en lo absoluto.
Los nombres de dominio registrados pueden ser usados como identificadores de dueños. Por ejemplo, el dueño de example.net pede usar FPIs usando el identificador de dueño "+//IDN example.net".
Los identificadores de texto pueden ser divididos en 3 partes: clase, descripción e idioma. En este caso la clase es "DTD", indicando que el FPI representa una definición de tipo de documento; la descripción es "XHTML 1.0"; y el idioma es "EN", lo cual nos sugiere que la DTD está escrita en inglés (aunque los documentos que cumplen con la DTD no necesitan estar en inglés). La clase está separada de la descripción, usando un carácter de espacio; la descripción está separada del idioma usando una doble diagonal. El texto de identificación opcionalmente puede contener la versión después del lenguaje, también separado por una doble diagonal.

## Uso en XML y SGML

El FPI es indudablemente la parte menos comprendida de una declaración de tipo de documento, un componente integral de un documento HTML, XML o SGML válido. El efecto de una FPI sobre el documento que lo usa es inusual en el sentido de que puede depender no solo de su propia corrección sintáctica, y del comportamiento del programa que lo analiza, sino que también depende del estado de registro en la ISO de la organización responsable del esquema XML referenciado por el FPI.

### Ejemplo

Una declaración de tipo de documento (para HTML 4.01 strict) que contiene la siguiente FPI: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> La FPI en la DTD arriba se lee: -//W3C//DTD HTML 4.01//EN

## Relaciones con las URIs

Cada vez mayormente, las especificaciones usan URIs en vez de FPIs para manejar la tarea de la identificación única. Por ejemplo, los espacios de nombres XML son URIs.
Un nombre de espacio URN ha sido definido para permitir que cualquier FPI pueda ser reescrita como una URI, reemplazando las dobles diagonales con dos puntos. El anterior ejemplo puede ser escrito como esta URI:
urn:publicid:-:W3C:DTD+HTML+4.01:EN