Eu vi o primeiro com vários atributos em um colchete (por exemplo <person name="JohnDoe" age="25">
, ), mas não entendo muito bem qual é exatamente a diferença entre eles, e também gostaria de saber como esses dois tipos de objetos são chamados (não consegui pesquisar no Google essa pergunta porque eu não tinha ideia de quais são seus nomes em primeiro lugar)
Eu sei que ambos podem fazer a mesma coisa (e é por isso que estou perguntando isso), mas estou procurando bons casos de uso para usar qualquer um deles (por exemplo, usando namespaces de API em atributos em vez de um elemento, colocando dados em elementos em vez de atributos )
Você consegue fazer isso:
Mas você não pode fazer isso:
Você pode codificar colchetes angulares usando entidades:
Mas agora é apenas texto "baz" em vez de XML aninhado. Equivalente a isso:
Da perspectiva XML, essa é a única diferença que acredito: você não pode aninhar tags dentro de tags, mas não dentro de atributos.
Se você não precisar aninhar tags, ambas as opções serão válidas. Não há outra diferença técnica. A especificação XML não possui regras semânticas para usar uma sobre a outra.