Während in XML Schema bei SimpleTypes Attribute nicht erlaubt sind, können bei ComplexTypes neben Elemente auch Attribute verwendet werden. Doch worin besteht überhaupt der Unterschied zwischen einem Attribut und einem Element?
Ein Element kann selbst primitiver Type sein (Integer, String…) oder aber auch Kindknoten besitzen. Ein Attribut hingegen sind nur primitive Typen. Darüber hinaus können Attribute nur einmal pro Element vorkommen. Elemente können mehrfach das gleiche Kindelement haben.