View on GitHub

info

Материјали за курс из УВИТ-а на Математичком факултету Универзитета у Београду

УВИТ - XML и XML схеме

Владимир Филиповић

Када треба да се користи елемент,а када атрибут?

Често треба одлучити да ли користити елемент или атрибут у датој XML схеми. Одговор на то питање није једноставан. Неки аутори сматрају да елементи треба да описују податке, док атрибути треба да описују мета податке. Други предлажу да се атрибути користе за мале делове података, као што је ID налога, и сл. Међутим, нема универзално прихваћеног правила које би одређиало када треба користити атрибут а када елеменат.

Једна добра сугестија би могла бити да се атрибут користи само ако оно што се описује није самодовољно. Другим речима, ако се оно што се описује може сматрати скупом родитељског елемента који има смисла да постоји само док се налази у оквиру родитеља, онда би требало користити атрибуте. Међутим, ако предмет описивања може без проблема самостално постојати постоји изван родитељског елемента и ако се ради о сложеном објекту која има однос са родитељским елементом, онда треба користити елементе.

Пример. Елемент назван oblik може имати атрибут под називом boja, тј. мета-податке о елемнету oblik, као и секвенцу елемената-потомака названих tacka, као независну структуру података.

Пример XML шеме (XSD):

<xs:element name="oblik">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="tacka" minOccurs="1" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:attribute name="x" type="xs:int" />
                    <xs:attribute name="y" type="xs:int" />
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="boja" type="xs:string" />
    </xs:complexType>
</xs:element>

Пример XML -а:

<oblik boja="crna">
    <tacka x="0" y="0" />
    <tacka x="100" y="0" />
    <tacka x="50" y="50" />
</oblik>

Употреба атрибута у сврху смештаја структурисних података на крају доводи до докумената који су тешки за читање и одржавање, па треба избегавати такву прксу и користити елементе ради описивања података.

Нека ограничења и могући проблеми са коришћењем атрибута диретно произилазе из следећих карактеристика атрибута:

Најбоље праксе приликом писања XML схеме