<claims>
<nameid>foo.bar@test.com</nameid>
<givenname>Foo</givenname>
<surname>Bar</surname>
</claims>
It instead encodes elements and attributes using elements and attributes, in the manner of the classic "inner platform effect" anti-pattern: <saml:AttributeStatement>
<saml:Attribute Name="uid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml:AttributeValue xsi:type="xs:string">test</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="mail" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml:AttributeValue xsi:type="xs:string">foo.bar@test.com</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
This is roughly the equivalent of the SQL table schema where there's one table with the columns "rowid, columnname, value" along with a "schema table" that some hand-rolled code uses to validate that the data table contains only data that is valid according to the schema.It's not XML, it's XML squared: using XML to encode XML concepts instead of just using XML directly.