[XML/XSL] Verschil?

Pagina: 1
Acties:

  • didio
  • Registratie: Maart 2001
  • Laatst online: 01-04 09:19

didio

didio.nl

Topicstarter
Zijn er naast dat het eerste voorbeeld er beter uit ziet nog andere verschillen?

voorbeeld1:
code:
1
2
3
<documents>
   <document id=1>blabla<document>
</documents>

voorbeeld2:
code:
1
2
3
4
5
6
<documents>
   <document>
    <id>1</id>
    blabla
   <document>
</documents>

weinig tot niks..


  • tomato
  • Registratie: November 1999
  • Niet online
Het ziet er anders uit, maar natuurlijk doe je ook iets anders. Zowiezo zou ik het liever zo zien:
code:
1
2
3
4
5
<documents>
    <document id="1">
        <content>blabla</content>
    </document>
</documents>

Of zo (beetje afhankelijk van wat je id voorstelt):
code:
1
2
3
4
5
6
<documents>
    <document>
        <id>1</id>
        <content>blabla</content>
    </document>
</documents>

[edit]
Over het algemeen liever geen attributes gebruiken, behalve voor interne identifiers.

Verwijderd

Het enige verschil is dat het id in het eerste voorbeeld een attribute is, terwijl dit in het tweede voorbeeld een element is. Een klein detail wat niet veel uitmaakt, maar wat je wel anders moet benaderen met inlezen etc.

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Over het algemeen kan je metadata (data over de data) als attributen nemen en gewone data als elementen. Maar er zijn ook wat nadelen verbonden met attributen dus probeer zoveel mogelijk in elementen te doen (tenminste, dat doe ik, ben ook nog maar lerende :))

Verwijderd

Op zaterdag 27 oktober 2001 15:06 schreef Orphix het volgende:
Over het algemeen kan je metadata (data over de data) als attributen nemen en gewone data als elementen. Maar er zijn ook wat nadelen verbonden met attributen dus probeer zoveel mogelijk in elementen te doen (tenminste, dat doe ik, ben ook nog maar lerende :))
Die nadelen zijn natuurlijk maar relatief. Inderdaad gebruik je metadata over het algemeen als attributes. En omdat dit iets moeilijker te gebruiken is (lees: je hebt er andere code voor nodig), zou het een nadeel zijn. Het ligt er helemaal aan waarvoor je het gebruikt en wat je met de (meta-) data gaat doen...

Toch maakt het eigenlijk niks uit hoe je het doet, want het resultaat is uiteindelijk hetzelfde. Het enige is dat je attributes niet met een xsl op je webpagina kan laten zien (daarvoor heet het ook metadata). Maar als je het enkel gebruikt voor data-uitwisseling (hier was XML oorspronkelijk voor bedoeld) ipv het tonen van gegevens op een website, dan maakt het niet uit.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op Saturday 27 October 2001 16:08 schreef typhon het volgende:
Het enige is dat je attributes niet met een xsl op je webpagina kan laten zien (daarvoor heet het ook metadata).
<xsl:value-of select="@id" />

  • tomato
  • Registratie: November 1999
  • Niet online
Attributes vs elements, imho niet een van de sterkste punten van XML.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Attributen versus elementen is inderdaad altijd een moeilijke kwestie. Bij jouw vraag speelt echter ook nog een ander punt.

Allereerst over attributen: het is inderdaad een vrij breed geaccepteerde regel dat je attributen alleen zou moeten gebruiken voor systeem identifiers, referenties en dergelijke zaken. Over het algemeen vind ik het ook wel fraai om identifiers dan ook altijd attributen te maken. De ondersteuning van zowel attributen als elementen is in feite dubbelop. Semi-structured data (waar XML vandaan komt) heeft in feite helemaal geen notie die een onderscheid maakt tussen attributen en elememten.

Het tweede punt is mixed content. Zoals je vast weet heb je grofweg twee typen XML: data-georienteerd en document-georienteerd. In document georieteerde XML files heb je heel vaak mixed content: een element bevat dan zowel tekst als sub-elementen. Over het algemeen wil je dat echter vermijden in data georienteerde XML. De notie van mixed content is dan vaak erg onduidelijk. Het is daarom beter om bij data georienteerde XML geen mixed-content te gebruiken, en dus alleen tekst in de 'bladeren' toe te staan.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment

Pagina: 1