sf-form.dtd es el DTD contra el que se valida el XML del modelo de datos de sucesión. Como vimos en la U1 L5, cada modelo de datos tiene su DTD, un archivo que define qué estructura es válida: qué elementos puede tener el archivo, qué atributos admite cada uno y en qué orden van. El modelo corporativo se valida contra corporate-datamodel.dtd; el de sucesión, contra sf-form.dtd.
Para validar en un editor XML, el DTD tiene que estar en la misma carpeta que el archivo, porque la declaración del documento apunta a él. El Tip 5.2 de audio de la U1 lo advertía: sin el DTD a mano, el editor no puede marcar errores, y se descubren recién al importar, cuando el sistema rechaza el archivo completo.
Además de validar elementos y atributos, el DTD fija el orden de las partes del archivo. La nota de SAP 2710923 muestra ese orden en el mensaje de error que aparece al importar un modelo que no lo respeta: descripción, flujos de trabajo, formatos de número y de visualización, elementos estándar, de usuario, de antecedentes y de pestañas, elementos HRIS, acciones HRIS, filtros propios, permisos de elementos, filtros de grupos dinámicos, plantillas de vista y asignaciones de sincronización de HRIS.
Ese mensaje es fácil de malinterpretar. Una larga lista de nombres de elementos puede parecer un problema con algún campo, cuando en realidad indica que una parte está fuera de lugar. El Tip 3.2 de audio lo resume: si el error enumera nombres de elementos, hay que revisar dónde se pegó el último bloque agregado.
El DTD también ayuda a escribir bien los atributos. En un hris-field, por ejemplo, visibility admite solo ciertos valores, como both, view o none, y el editor marca un valor que no corresponde. Detectarlo antes de importar ahorra un ciclo de prueba y error en Provisioning.
En el caso del curso, sf-form.dtd se usa en el Video 3.1: el modelo exportado se abre en el editor con el DTD en la misma carpeta y se valida antes de recorrer sus partes. La narración lo presenta como la regla de todo modelo de datos. El modelo de sucesión por país usa su propio DTD; la nota de SAP 2244928 muestra su declaración en un ejemplo de modelo por país vacío.
En el ejercicio de la L3, el primer error del compañero se explica con el DTD: pegó el bloque nuevo al final del archivo, después de las asignaciones de sincronización, y quedó fuera del orden que el DTD exige. En la evaluación de la L3, una pregunta pide contra qué DTD se valida el modelo de sucesión, con corporate-datamodel.dtd entre los distractores.
