element jest elementem XML - tag otwarcia, niektóre treści, tag zamykający - są budulcem dokumentu XML:
<test>someValue</test>
Tutaj "test" byłby elementem.
Atrybuty jest dodatkowym informacji na tag - jest to „dodatek” lub dodatkowe informacje o elemencie, ale nigdy nie może istnieć sam:
<test id="5">somevalue</test>
„id” jest atrybutem.
Nie można mieć wielu atrybutów o tej samej nazwie na jednym tagu -> minOccurs/maxOccurs nie ma sensu. Możesz zdefiniować wymagane (lub nie) atrybuty - wszystko inne nie ma sensu.
Elementy definiowane są przez ich występowanie wewnątrz typów złożonych - np. jeśli masz typ złożony z <xs:sequence>
wewnątrz - definiowania, że wszystkie elementy muszą być obecne i musi się w tej konkretnej kolejności:
<xs:complexType name="SomeType">
<xs:sequence>
<xs:element name="Element1" type="xs:string" />
<xs:element name="Element2" type="xs:string" />
</xs:sequence>
</xs:complexType>
Wewnątrz elementu tego typu, podelementy „element1” i "Element2" są wymagane i muszą pojawić się w tej kolejności - nie ma potrzeby "wymagane" lub nie (jak w przypadku atrybutów). To, czy element jest wymagany, określa się za pomocą minOccurs i maxOccurs; oba są domyślnie = 1, np. element musi wystąpić i może wystąpić tylko raz. Dostosowując te ustawienia, można zdefiniować element jako opcjonalny (minOccurs = 0) lub zezwolić na jego wyświetlenie kilka razy (maxOccurs> 1).
Zdecydowanie polecam zapoznać się z W3Schools Tutorial on XML Schema i dowiedzieć się więcej o schemacie XML.
Marc
Prawdopodobny duplikat [atrybutu XML vs element XML] (http://stackoverflow.com/questions/33746/xml-attribute-vs-xml-element) – kjhughes