# Общие правила XML

### Общие правила <a href="#general-rule" id="general-rule"></a>

Вот общие правила для успешной загрузки данных о сертификации через файл XML:

<table data-header-hidden><thead><tr><th width="222"></th><th></th></tr></thead><tbody><tr><td><strong>Формат файла</strong></td><td>Формат файла должен быть <code>.xml</code></td></tr><tr><td><strong>Размер файла</strong></td><td>Максимальный размер файла XML составляет 50 МБ. Если ваш файл XML превышает 50 МБ, то вам нужно разделить его на несколько файлов и загрузить каждый файл, размер которого будет менее 50 МБ.</td></tr><tr><td><strong>Имя файла</strong></td><td>IAF CertSearch рекомендует, чтобы вы называли свои файлы с использованием следующих форматов: Один файл: <code>cb_certs.xml</code> Несколько файлов: <code>cb_certs_1.xml</code>, <code>cb_certs_2.xml</code>, <code>cb_certs_3.xml</code></td></tr><tr><td><strong>XML-тег</strong></td><td>XML-теги должны совпадать с шаблоном. Если изменить, то IAF CertSearcg не распознает данные поля и они не будут загружены<strong>.</strong></td></tr><tr><td><strong>Последовательность XML-тегов</strong></td><td>Теги должны быть упорядочены и должны совпадать с шаблоном. Если изменить, то IAF CertSearch не распознает вкладки, и данные на этих вкладках не будут загружены.</td></tr></tbody></table>

## Понимание формата файла XML

### Важные заметки

1. **XML-документы должны содержать один корневой элемент, который является родительским для всех остальных элементов:**\
   Для загрузки сертификата корневым элементом является `<client_certs></client_certs>`
2. Эта строка называется **XML-прологом**: `<?xml version="1.0" encoding="UTF-8?">`\
   XML-пролог является необязательным. Если он существует, он должен находиться первым в документе. XML-документы могут содержать международные символы, такие как норвежская øæå или французская êèé. Чтобы избежать ошибок, вы должны указать использованную кодировку или сохранить ваши XML-файлы в формате UTF-8. UTF-8 является кодировкой символов по умолчанию для XML-документов.
3. **Все элементы XML должны иметь закрывающий тег**\
   XML-теги чувствительны к регистру. Тег отличается от тега. Открывающий и закрывающий теги должны быть написаны одинаково:\
   \
   любые теги, которые остаются незакрытыми, приведут к ошибке: **Неверный загружаемый файл XML**\ <mark style="color:red;">**Неверно:**</mark> <mark style="color:red;">`<certification_body_identity_number>%VALUE GOES HERE`</mark>\
   \ <mark style="color:green;">**Верно:**</mark> <mark style="color:green;">`<certification_body_identity_number>%VALUE GOES HERE</certification_body_identity_number>`</mark>\
   \\
4. **Элементы XML должны быть правильно вложены**

   В XML все элементы должны быть правильно вложены друг в друга:\
   \ <mark style="color:red;">**Неверно:**</mark>\ <mark style="color:red;">`<certification_identity_number>`</mark>\ <mark style="color:red;">`<certification>`</mark>`CERT-0001`<mark style="color:red;">`</certification_identity_number>`</mark>\ <mark style="color:red;">`</certification>`</mark>\
   \ <mark style="color:green;">**Верно:**</mark>\ <mark style="color:green;">\<certification></mark>\ <mark style="color:green;">\<certification\_identity\_number></mark>CERT-0001<mark style="color:green;">\</certification\_identity\_number>\</certification></mark>\\
5. **Теги не могут содержать пробелы**\
   **например:** <mark style="color:red;">`<certification identity number>`</mark>\
   Система не распознает этот синтаксис и выдаст ошибку: **Неверный загружаемый файл XML**\\
6. **Все родительские теги должны быть включены при загрузке файла XML**, если родительские теги отсутствуют, система выдаст ошибку: **Неверный загружаемый файл XML**\\
7. **Если теги certification\_standard\_and\_scheme и его дочерние элементы пусты**, система выдаст ошибку: **Неверный загружаемый файл XML**\\
8. **Недопустимые теги для необязательных полей не вызовут ошибку**, но данные, добавленные внутри тега, не будут отображаться в системе\
   \ <mark style="color:green;">**Верно:**</mark><mark style="color:green;">`<original_issue_date>01/20/2021</original_issue_date>`</mark>\ <mark style="color:red;">**Неверно (из файла):**</mark> <mark style="color:red;">\<orig\_issued\_date>01/20/2021\</orig\_issued\_date></mark>\
   \
   **Данные, отображаемые в системе**\
   Дата оригинального выдачи: *(пусто)*

### DOs и DONTs при форматировании данных в XML

При заполнении данных в файл XML следует учесть следующее.

### <mark style="color:green;">**DOs**</mark>

1. **Ввод одного значения данных на один тег**

   Убедитесь, что в один тег вводится только одно значение данных. При загрузке нескольких значений данных не включайте более одного значения данных в один тег.
2. **Сохраняйте согласованный формат данных**

   Несоответствие в пробелах, регистре и других типах форматирования вызовет ошибку, и данные не будут сопоставлены.
3. **Сохраняйте синтаксис, аналогичный предоставленному в шаблоне**

### <mark style="color:red;">**DONTs**</mark>

1. **Не оставляйте обязательные поля пустыми или пустыми**
2. **Не добавляйте несколько данных в один тег**
3. **Не объединяйте несколько данных в один тег**
