Элемент представляет собой XML-элемент - открывающий тег, некоторое содержание, закрывающий тег - они являются строительными блоками документа XML:
<test>someValue</test>
Здесь «тест» будет элементом.
Атрибуты дополнительная информация по тегу - это «дополнение на» или дополнительная информация по элементу, но никогда не может существовать в одиночку:
<test id="5">somevalue</test>
«Идентификатор» является атрибутом.
Вы не можете иметь несколько атрибутов с одним и тем же именем в одном теге -> minOccurs/maxOccurs не имеет смысла. Вы можете определить требуемый (или нет) атрибут - ничего другого не имеет смысла.
Элементы определяются их появлением внутри сложных типов - например. если у вас есть сложный тип с <xs:sequence>
внутри - вы определяете, что все элементы должны присутствовать и должны изменяться в таком порядке:
<xs:complexType name="SomeType">
<xs:sequence>
<xs:element name="Element1" type="xs:string" />
<xs:element name="Element2" type="xs:string" />
</xs:sequence>
</xs:complexType>
Внутри элемента этого типа, подэлементы «element1» и «Элемент2» необходим и должен появляться в этом порядке - нет необходимости «требовать» или нет (например, с атрибутами). Независимо от того, требуется ли элемент, определяется использование minOccurs и maxOccurs; оба по умолчанию равны 1, например. элемент должен произойти и может произойти только один раз. С помощью настройки этих параметров вы можете определить элемент, который будет необязательным (minOccurs = 0), или позволить ему отображаться несколько раз (maxOccurs> 1).
Я настоятельно рекомендую вам ознакомиться с W3Schools Tutorial on XML Schema и узнать больше о схеме XML.
Марк
Возможный дубликат [XML-атрибут против элемента XML] (http://stackoverflow.com/questions/33746/xml-attribute-vs-xml-element) – kjhughes