Говоря, как семантика победила, одна из самых проблемных проблем - адекватные ограничения по значению данных. Предположим, у вас есть бесконечный бай-ин и сотрудничество, как и подразумевает ваше последнее предложение. :-) Я утверждаю, что один только XML все же не обеспечивает адекватной реализации семантики, которую вы в конечном итоге пожелаете. К сожалению, я не могу привести примеры, чтобы нести быстро, но говоря от руки:
"содержимое тега GOK должно быть целым числом, не превышающим общее количество тегов BREEP, содержащихся в предыдущем теге FLOIT"
- это правило, которое я не вижу, чтобы вы вводили в действие проверку XML в ближайшее время. (Я могу ошибаться; для меня сейчас ранний день.)
Это не смертельно, но сложно, и не только это, обманчиво сложно. Короче говоря, семантика, которую вы в конечном итоге должны применять в любом начинании, быстро потребует эквивалента логики первого порядка (если не второго порядка), который требует надежного языка описания. Такие языки существуют (сразу приходит на ум Common Logic, как и OWL Full) ... но тогда вам нужен надуманный механизм рассуждений для обеспечения соблюдения правил.
Я говорю, что это обманчиво трудно по причинам, которые, к сожалению, приближаются к вашим многословным деловым мнениям, но все же стоит упомянуть хотя бы ради человеческих факторов. То есть, по моему опыту, пользователи настолько привыкли к ограничениям, которые накладывает реляционный алгебраический подход к моделированию данных, что они склонны естественным образом придерживаться очень грубых правил типа «это поле должно быть целым числом, что нужно строка »и подсознательно предположить, что настоящая семантика будет навязываться человеческими глазными яблоками. Другими словами, будет трудно увидеть необходимость чего-то большего, чем просто простое синтаксическое принуждение ... но это только мой опыт; ваш может быть совсем другим.