Atrybut XML vs element XML

W pracy jesteśmy proszeni o utworzenie plików XML, aby przekazać dane do innej aplikacji offline, która następnie utworzy drugi plik XML, aby przekazać z powrotem w celu aktualizacji niektórych naszych danych. W trakcie tego procesu dyskutowaliśmy z zespołem drugiej aplikacji o strukturze pliku XML.

Próbka, którą wymyśliłem, jest zasadniczo czymś w rodzaju:

<INVENTORY>
   <ITEM serialNumber="something" location="something" barcode="something">
      <TYPE modelNumber="something" vendor="something"/> 
   </ITEM>
</INVENTORY>

Drugi zespół powiedział, że nie jest to standard branżowy i że atrybuty powinny być używane tylko dla metadane. Zasugerował:

<INVENTORY>
   <ITEM>
      <SERIALNUMBER>something</SERIALNUMBER>
      <LOCATION>something</LOCATION>
      <BARCODE>something</BARCODE>
      <TYPE>
         <MODELNUMBER>something</MODELNUMBER>
         <VENDOR>something</VENDOR>
      </TYPE>
   </ITEM>
</INVENTORY>

Powodem, dla którego zaproponowałem pierwszy, jest to, że rozmiar utworzonego pliku jest znacznie mniejszy. Będzie około 80000 elementów, które będą w pliku podczas transferu. Ich sugestia w rzeczywistości okazuje się być trzy razy większa niż ta, którą zasugerowałem. Szukałem tajemniczego "standardu branżowego", który został wymieniony, ale najbliżej mogłem znaleźć było to, że atrybuty XML powinny być używane tylko dla metadanych, ale powiedział, że debata była o tym, co było właściwie metadane.

Po długim wyjaśnieniu (sorry) jak określić, czym są metadane, a przy projektowaniu struktury dokumentu XML jak należy zdecydować, kiedy użyć atrybutu lub elementu?

 228
Author: fredpi, 2008-08-29

20 answers

Używam tej zasady:

    Atrybut to coś, co jest samoistne, np. kolor, identyfikator, nazwa.
  1. Element to coś, co ma lub może mieć własne atrybuty lub zawierać inne elementy.
Więc twoja jest blisko. Zrobiłbym coś takiego:

EDIT : Zaktualizowano oryginalny przykład na podstawie opinii poniżej.

  <ITEM serialNumber="something">
      <BARCODE encoding="Code39">something</BARCODE>
      <LOCATION>XYX</LOCATION>
      <TYPE modelNumber="something">
         <VENDOR>YYZ</VENDOR>
      </TYPE>
   </ITEM>
 128
Author: Chuck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-29 13:14:48

Niektóre problemy z atrybutami to:

  • atrybuty nie mogą zawierać wielu wartości (elementy potomne mogą)
  • atrybuty nie są łatwo rozszerzalne (dla przyszłych zmian)
  • atrybuty nie mogą opisywać struktur (elementy potomne mogą)
  • atrybuty są trudniejsze do manipulowania kodem programu
  • wartości atrybutów nie są łatwe do przetestowania pod kątem DTD

Jeśli używasz atrybutów jako kontenerów danych, kończysz z dokumentami, które są trudne do odczytania i utrzymania. Spróbuj użyć elementów do opisania danych. Używaj atrybutów wyłącznie w celu dostarczenia informacji, które nie są istotne dla danych.

Nie kończ w ten sposób (nie tak powinno się używać XML):

<note day="12" month="11" year="2002" 
      to="Tove" to2="John" from="Jani" heading="Reminder"  
      body="Don't forget me this weekend!"> 
</note>

Źródło: http://www.w3schools.com/xml/xml_dtd_el_vs_attr.asp

 42
Author: user44350,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-28 08:05:21

" XML "oznacza" eXtensible Markup Language". Język znaczników oznacza, że dane są tekstowe, oznaczone {[3] } z metadanymi dotyczącymi struktury lub formatowania.

XHTML jest przykładem XML używanego w sposób zamierzony:

<p><span lang="es">El Jefe</span> insists that you
    <em class="urgent">MUST</em> complete your project by Friday.</p>

Tutaj rozróżnienie między elementami i atrybutami jest jasne. Elementy tekstowe są wyświetlane w przeglądarce, a atrybuty to Instrukcje Jak je wyświetlić (chociaż jest kilka znaczników, które nie działają, że sposób).

XML jest używany nie jako język znaczników, ale jako język serializacji danych , w którym rozróżnienie między "danymi" i "metadanymi" jest bardziej niejasne. Tak więc wybór pomiędzy elementami i atrybutami jest mniej lub bardziej arbitralny, z wyjątkiem rzeczy, które nie mogą być reprezentowane za pomocą atrybutów (zobacz odpowiedź feenstera).
 33
Author: dan04,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-24 04:02:05

Element XML vs atrybut XML

XML polega na porozumieniu. w pierwszej kolejności wykorzystaj istniejące schematy XML lub konwencje ustanowione w Twojej społeczności lub branży.

Jeśli naprawdę jesteś w sytuacji, aby zdefiniować swój schemat od podstaw, oto kilka ogólnych rozważań, które powinny informować element vs atrybut decyzji :

<versus>
  <element attribute="Meta content">
    Content
  </element>
  <element attribute="Flat">
    <parent>
      <child>Hierarchical</child>
    </parent>
  </element>
  <element attribute="Unordered">
    <ol>
      <li>Has</li>
      <li>order</li>
    </ol>
  </element>
  <element attribute="Must copy to reuse">
    Can reference to re-use
  </element>
  <element attribute="For software">
    For humans
  </element>
  <element attribute="Extreme use leads to micro-parsing">
    Extreme use leads to document bloat
  </element>
  <element attribute="Unique names">
    Unique or non-unique names
  </element>
  <element attribute="SAX parse: read first">
    SAX parse: read later
  </element>
  <element attribute="DTD: default value">
    DTD: no default value
  </element>
</versus>
 30
Author: kjhughes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-17 12:56:33

To może zależeć od Twojego użycia. XML, który jest używany do reprezentowania sztukowanych danych generowanych z bazy danych, może działać dobrze, a ostatecznie wartości pól są umieszczane jako atrybuty.

Jednak XML używany jako transport komunikatów często byłby lepszy przy użyciu większej liczby elementów.

Na przykład powiedzmy, że mieliśmy ten XML, jak zaproponowano w odpowiedzi:-

<INVENTORY>
   <ITEM serialNumber="something" barcode="something">
      <Location>XYX</LOCATION>
      <TYPE modelNumber="something">
         <VENDOR>YYZ</VENDOR>
      </TYPE>
    </ITEM>
</INVENTORY>

Teraz chcemy wysłać element elementu do urządzenia, aby wydrukować kod kreskowy, jednak istnieje wybór typów kodowania. Jak możemy reprezentować wymagany typ kodowania? Nagle zdajemy sobie sprawę, nieco z opóźnieniem, że kod kreskowy nie był pojedynczą wartością automatyczną, ale raczej może być zakwalifikowany z kodowaniem wymaganym podczas drukowania.

   <ITEM serialNumber="something">
      <barcode encoding="Code39">something</barcode>
      <Location>XYX</LOCATION>
      <TYPE modelNumber="something">
         <VENDOR>YYZ</VENDOR>
      </TYPE>
   </ITEM>

Chodzi o to, że jeśli nie zbudujesz jakiegoś XSD lub DTD wraz z przestrzenią nazw, aby naprawić strukturę w kamieniu, możesz być najlepiej obsłużony, pozostawiając otwarte opcje.

IMO XML jest najbardziej przydatny, gdy można go wyginać bez łamania istniejącego kodu przy jego użyciu.

 21
Author: AnthonyWJones,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-30 10:24:12

Używam następujących wskazówek w moim projekcie schematu w odniesieniu do atrybutów vs. elementów:

  • używaj elementów do długiego tekstu (Zwykle tych z łańcuchem lub normalizedString types)
  • nie używaj atrybutu, jeśli istnieje grupowanie dwóch wartości (np. eventStartDate i eventEndDate) dla elementu. W poprzednim przykładzie, powinien być nowy element dla "event", który może zawierać datę startową i atrybuty endDate.
  • Data Biznesowa, DateTime i liczby (np. liczba, kwota i stawka) powinny być żywioły.
  • elementy czasu nie biznesowego, takie jak Ostatnia aktualizacja, wygasa dnia powinny być atrybuty.
  • numery spoza firmy, takie jak kody hash i indeksy, powinny być atrybutami.* Użyj elementów, jeśli Typ będzie złożony.
  • Użyj atrybutów, jeśli wartość jest typem prostym i nie powtarza się.
  • XML: id i xml: lang muszą być atrybutami odwołującymi się do schematu XML
  • preferują atrybuty, gdy jest to technicznie możliwe.

The preferencje atrybutów są następujące:

  • unique (atrybut nie może pojawić się wiele razy)
  • porządek nie ma znaczenia
  • powyższe właściwości są dziedziczne (jest to coś, czego model zawartości "wszystko" nie obsługuje w bieżącym języku schematu)
  • bonus jest to, że są one mniej gadatliwe i zużywają mniej przepustowości, ale to nie jest naprawdę powód, aby preferować atrybuty niż elementy.

Dodałem gdy jest to technicznie możliwe ponieważ są chwile, w których użycie atrybutów nie jest możliwe. Na przykład wybór zestawu atrybutów. Na przykład use (startDate i endDate) xor (startTS i endTS) nie jest możliwe z bieżącym językiem schematu

Jeśli XML Schema zacznie zezwalać na ograniczenie lub rozszerzenie modelu treści "all", to prawdopodobnie go porzucę

 9
Author: Archimedes Trajano,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-16 08:06:37

Nie ma uniwersalnej odpowiedzi na to pytanie (byłem mocno zaangażowany w tworzenie specyfikacji W3C). XML może być używany do wielu celów - dokumenty tekstowe, Dane i Kod deklaratywny to trzy najczęściej spotykane. Używam go również często jako modelu danych. Istnieją aspekty tych aplikacji, w których atrybuty są bardziej powszechne, a inne, w których elementy potomne są bardziej naturalne. Istnieją również funkcje różnych narzędzi, które ułatwiają lub utrudniają korzystanie z nich.

XHTML jest jednym z obszarów gdzie atrybuty mają naturalne zastosowanie(np. w class = 'foo'). Atrybuty nie mają porządku, a to może ułatwić niektórym tworzenie narzędzi. Atrybuty OTOH są trudniejsze do wpisania bez schematu. Uważam również, że atrybuty przestrzeni nazw (foo:bar="Zork") są często trudniejsze do zarządzania w różnych zestawach narzędzi. Ale spójrz na niektóre języki W3C, aby zobaczyć mieszankę, która jest powszechna. SVG, XSLT, XSD, MathML to niektóre przykłady znanych języków i wszystkie mają bogatą podaż atrybutów i elementów. Niektóre języki pozwalają nawet na więcej niż jeden sposób, np.

<foo title="bar"/>;

Lub

<foo>
  <title>bar</title>;
</foo>;

Zauważ, że nie są one równoważne składniowo i wymagają wyraźnego wsparcia w narzędziach przetwarzania)

Radzę przyjrzeć się powszechnym praktykom w obszarze najbliższym aplikacji, a także zastanowić się, jakie zestawy narzędzi chcesz zastosować.

Na koniec upewnij się, że odróżniasz przestrzenie nazw od atrybutów. Niektóre systemy XML (np. Linq) reprezentują przestrzenie nazw jako atrybuty w API. IMO to jest brzydkie i potencjalnie mylące.

 8
Author: peter.murray.rust,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-25 10:19:24

Gdy masz wątpliwości, KISS -- Po co mieszać atrybuty i elementy, jeśli nie masz wyraźnego powodu, aby używać atrybutów. Jeśli później zdecydujesz się zdefiniować XSD, będzie to również czystsze. Wtedy, jeśli jeszcze później zdecydujesz się wygenerować strukturę klas z twojego XSD, będzie to również prostsze.

 7
Author: Luke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-29 01:27:43

Inni opisywali, jak odróżnić atrybuty od elementów, ale z bardziej ogólnej perspektywy umieszczanie wszystkiego w atrybutach, ponieważ sprawia, że wynikowy XML jest mniejszy, jest błędne.

XML nie jest zaprojektowany tak, aby był kompaktowy, ale przenośny i czytelny dla człowieka. Jeśli chcesz zmniejszyć rozmiar przesyłanych danych, użyj czegoś innego(np. bufory protokołu google ).

 5
Author: Patrick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-10 17:11:34

Pytanie o milion dolarów!

Po pierwsze, nie martw się zbytnio o wydajność teraz. będziesz zaskoczony, jak szybko zoptymalizowany parser xml zgrzeje przez twój xml. co ważniejsze, jaki jest Twój projekt na przyszłość: w miarę rozwoju XML, w jaki sposób utrzymasz luźne powiązania i interoperacyjność?

Bardziej konkretnie, można uczynić model zawartości elementu bardziej złożonym, ale trudniej jest rozszerzyć atrybut.

 4
Author: Adam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-29 01:24:43

Jest to możliwe w obu przypadkach, ale twoi koledzy mają rację w tym sensie, że XML powinien być używany do" znaczników " lub metadanych wokół rzeczywistych danych. Ze swojej strony masz rację, że czasami trudno jest zdecydować, gdzie znajduje się granica między metadanymi a danymi podczas modelowania Twojej domeny w XML. W praktyce udaję, że wszystko w znacznikach jest ukryte, a tylko dane poza znacznikami są czytelne. Czy dokument ma w tym jakiś sens?

XML jest notorycznie nieporęczne. Do transportu i przechowywania kompresja jest wysoce zalecana, jeśli możesz sobie pozwolić na moc obliczeniową. XML dobrze kompresuje, czasami fenomenalnie dobrze, ze względu na swoją powtarzalność. Miałem duże pliki kompresować do mniej niż 5% ich oryginalnego rozmiaru.

Kolejnym punktem, który powinien wzmocnić twoją pozycję, jest to, że podczas gdy drugi zespół kłóci się o styl (w tym, że większość narzędzi XML będzie obsługiwać dokument all-atrybut tak samo łatwo jak dokument all-#PCDATA), kłócisz się praktyczne. Podczas gdy stylu nie można całkowicie zignorować, techniczne zalety powinny mieć większą wagę.

 4
Author: erickson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-29 01:26:57

To w dużej mierze kwestia preferencji. Używam elementów do grupowania i atrybutów dla danych, gdzie to możliwe, ponieważ widzę to jako bardziej kompaktowe niż alternatywa.

Na przykład wolę.....
<?xml version="1.0" encoding="utf-8"?>
<data>
    <people>
         <person name="Rory" surname="Becker" age="30" />
        <person name="Travis" surname="Illig" age="32" />
        <person name="Scott" surname="Hanselman" age="34" />
    </people>
</data>

...Zamiast....

<?xml version="1.0" encoding="utf-8"?>
<data>
    <people>
        <person>
            <name>Rory</name>
            <surname>Becker</surname>
            <age>30</age>
        </person>
        <person>
            <name>Travis</name>
            <surname>Illig</surname>
            <age>32</age>
        </person>
        <person>
            <name>Scott</name>
            <surname>Hanselman</surname>
            <age>34</age>
        </person>
    </people>
</data>

Jednak jeśli mam dane, które nie reprezentują łatwo wewnątrz powiedzmy 20-30 znaków lub zawierają wiele cudzysłowów lub innych znaków, które wymagają ucieczki, powiedziałbym, że nadszedł czas, aby przełamać elementy... prawdopodobnie z blokami CData.

<?xml version="1.0" encoding="utf-8"?>
<data>
    <people>
        <person name="Rory" surname="Becker" age="30" >
            <comment>A programmer whose interested in all sorts of misc stuff. His Blog can be found at http://rorybecker.blogspot.com and he's on twitter as @RoryBecker</comment>
        </person>
        <person name="Travis" surname="Illig" age="32" >
            <comment>A cool guy for who has helped me out with all sorts of SVn information</comment>
        </person>
        <person name="Scott" surname="Hanselman" age="34" >
            <comment>Scott works for MS and has a great podcast available at http://www.hanselminutes.com </comment>
        </person>
    </people>
</data>
 4
Author: Rory Becker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-30 09:23:18

Użyj elementów dla danych i atrybutów dla metadanych(danych o danych elementu).

Jeśli element jest wyświetlany jako predykat w ciągach select, masz dobry znak, że powinien być atrybutem. Podobnie, jeśli atrybut nigdy nie jest używany jako predykat, to może nie jest użyteczny metadane.

Pamiętaj, że XML powinien być czytelny maszynowo, a nie czytelny dla człowieka i dla dużych dokumentów XML bardzo dobrze się kompresuje.

 4
Author: Michael J,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-15 19:22:35

Może skorzystasz z naszej ciężko wypracowanej intuicji orientacji obiektowej? Zwykle stwierdzam, że łatwo jest myśleć, który jest obiektem, a który jest atrybutem obiektu lub do którego obiektu się odnosi.

Cokolwiek intuicyjnie ma sens, ponieważ obiekty powinny pasować jako elementy. Jego atrybuty (lub właściwości) byłyby atrybutami dla tych elementów w xml lub elemencie potomnym z atrybutem.

Myślę, że dla prostszych przypadków jak w przykładzie orientacja obiektu analogia działa dobrze, aby dowiedzieć się, który jest elementem, a który jest atrybutem elementu.

 4
Author: rpattabi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-09 13:08:51

Obie metody przechowywania właściwości obiektu są doskonale poprawne. Powinieneś odejść od pragmatycznych rozważań. Spróbuj odpowiedzieć na następujące pytanie:

  1. która reprezentacja prowadzi do szybszego parsowania danych \ generowania?
  2. która reprezentacja prowadzi do szybszego transferu danych?
  3. Czy czytelność ma znaczenie?

    ...

 3
Author: aku,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-29 01:29:49

Tylko kilka poprawek do jakichś złych informacji:

@ John Ballinger: atrybuty mogą zawierać dowolne dane znakowe. & "'muszą być odpowiednio zabezpieczone & "i'. Jeśli korzystasz z biblioteki XML, zajmie się tym za Ciebie.

Do diabła, atrybut może zawierać dane binarne, takie jak obraz, jeśli naprawdę chcesz, po prostu przez kodowanie base64 i uczynienie go data: URL.

@feenster: atrybuty mogą zawierać oddzielone spacjami wiele elementów w przypadku identyfikatorów lub Nazwiska, w tym liczby. Nitpicky, ale to może skończyć się oszczędnością miejsca.

Używanie atrybutów może utrzymać XML konkurencyjny z JSON. Zobacz też Fat Markup: przycinanie mitu Fat Markup jedna kaloria na raz.

 2
Author: brianary,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-07 23:28:42

Jest to bardzo jasne w HTML, gdzie różnice atrybutów i znaczników mogą być wyraźnie widoczne:

  1. wszystkie dane są pomiędzy znacznikami
  2. atrybuty są używane do scharakteryzowania tych danych (np. formatów)

Jeśli masz tylko czyste DANE jako XML, jest mniej wyraźna różnica. Dane mogą stać pomiędzy znacznikami lub jako atrybuty.

= > Większość danych powinna stać pomiędzy znacznikami.

Jeśli chcesz użyć atrybutów tutaj: możesz podzielić dane na dwie kategorie: Dane i" metadane", gdzie metadane nie są częścią rekordu, chcesz przedstawić, ale rzeczy takie jak" wersja formatu", "Data utworzenia" itp.

<customer format="">
     <name></name>
     ...
</customer>

Można również powiedzieć: "użyj atrybutów do scharakteryzowania znacznika, użyj znaczników do dostarczenia samych danych."

 0
Author: Walter A. Jablonowski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-31 02:44:50

Zawsze zaskakują mnie wyniki tego typu dyskusji. Dla mnie istnieje bardzo prosta zasada decydowania, czy dane należą do atrybutu, czy jako treść, a mianowicie, czy dane mają nawigowalną podstrukturę.

Więc na przykład, tekst bez znaczników zawsze należy do atrybutów. Zawsze.

Listy należą do podstruktury lub treści. Tekst, który z czasem może zawierać wbudowane strukturalne pod-treści, należy do treści. (Z mojego doświadczenia wynika, że stosunkowo niewiele tego-tekst ze znacznikami - podczas korzystania z XML do przechowywania lub wymiany danych.)

Schemat XML napisany w ten sposób jest zwięzły.

Ilekroć widzę przypadki takie jak <car><make>Ford</make><color>Red</color></car>, myślę sobie: "ojej, czy autor myślał, że będą podelementy w elemencie make?"<car make="Ford" color="Red" /> jest znacznie bardziej czytelny, nie ma wątpliwości, jak będą obsługiwane białe znaki itp.

Biorąc pod uwagę tylko zasady obsługi białych znaków, uważam, że była to wyraźna intencja XML projektantów.

 0
Author: MGrier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-15 17:12:14

Zgadzam się z feenster. Trzymaj się z dala od atrybutów, jeśli możesz. Elementy są przyjazne dla ewolucji i bardziej interoperacyjne między zestawami narzędzi usług internetowych. Nigdy nie znajdziesz tych zestawów narzędzi serializujących wiadomości żądania/odpowiedzi za pomocą atrybutów. Ma to również sens, ponieważ nasze wiadomości są danymi (a nie metadanymi) dla zestawu narzędzi usług internetowych.

 -1
Author: ottodidakt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-07 06:22:09

Atrybuty mogą łatwo stać się trudne do zarządzania w czasie zaufaj mi. zawsze trzymam się od nich z daleka osobiście. Elementy są znacznie bardziej wyraźne i czytelne/użyteczne zarówno przez parsery, jak i użytkowników.

Jedyny raz, kiedy ich używałem, to zdefiniowanie rozszerzenia pliku URL zasobu:

<image type="gif">wank.jpg</image> ...etc etc

Myślę, że jeśli znasz 100% atrybut nie będzie musiał być rozszerzany, możesz go użyć, ale ile razy to wiesz.

<image>
  <url>wank.jpg</url>
  <fileType>gif</fileType>
</image>
 -1
Author: oh pot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-08 19:51:46