Я видел первый вариант с несколькими атрибутами в одной скобке (например <person name="JohnDoe" age="25">
, ), но я не совсем понимаю, в чем именно разница между ними, и я также просто хотел бы узнать, как называются эти два типа объектов (я не смог загуглить этот вопрос, потому что изначально не имел ни малейшего представления об их названиях).
Я знаю, что оба могут делать одно и то же (вот почему я это спрашиваю), но я ищу хорошие варианты использования любого из них (например, использование пространств имен API в атрибутах вместо элемента, размещение данных в элементах вместо атрибутов)
решение1
Вы можете сделать это:
<foo>
<bar>baz</bar>
</foo>
Но так делать нельзя:
<foo value="<bar>baz</bar>" />
Вы можете закодировать угловые скобки с помощью сущностей:
<foo value="<bar>baz</bar>" />
Но теперь это просто текст "baz", а не вложенный XML. Эквивалентно этому:
<foo><bar>baz</bar></foo>
С точки зрения XML это единственное отличие, на мой взгляд: нельзя вкладывать теги внутрь тегов, но нельзя вкладывать теги внутрь атрибутов.
Если вам не нужно вкладывать теги, оба варианта допустимы. Других технических различий нет. В спецификации XML нет семантических правил для использования одного вместо другого.