Für einfache Datentypen übernimmt SOAP alle Typen, die in der Sektion "Built-in datatypes" der XML-Schema-Spezifikation enthalten sind. Dabei handelt es sich um die folgenden:
<element name="nachname" type="string"/> <element name="alter" type="int"/> <element name="groesse" type="float"/> <element name="lieblingsfarbe"> <simpleType base="xsd:string"> <enumeration value="Rot"/> <enumeration value="Blau"/> <enumeration value="Gelb"/> </simpleType>Mit obigem Schema korrespondiert jetzt z. B. der folgende Datenblock:
<nachname>Stitz</nachname> <alter>23</alter> <groesse>1.87</groesse> <lieblingsfarbe>Blau</lieblingsfarbe>
Der Datentyp String, wie er in der XML-Schema-Spezifikation definiert wurde, ist nicht identisch mit dem aus vielen Datenbanken oder Programmiersprachen bekannten Datentyp String, da er einige Zeichen verbietet, die diese Sprachen erlauben. Solche Zeichen müssen dann alternativ repräsentiert werden, etwa durch Entities.
In der XML-Schema-Deklaration wird ein Mechanismus der Aufzählung definiert, welcher vom SOAP direkt übernommen wird. Ein Element eines Aufzählungstypen, also einer Liste von möglichen Werten, wird dabei durch den Namen des Werts identifiziert. Dieses Vorgehen impliziert einen Satz einzigartiger Namen auf der einen Seite, und eine Menge von Werten, die vom gleichen Basistyp sind, auf der anderen Seite. Eine Menge von Namen, eventuell die von den gebräuchlichsten Farben, könnte beispielsweise als eine auf dem eingebauten string-Typ basierende Aufzählung definiert werden, die Werte ("1", "3", "5") sind eine mögliche Aufzählung, die auf dem integer-Typ basiert.
Ein Byte-Array (auch Byte-String genannt) wird ähnlich einem normalen String codiert, wobei empfohlen wird, nach dem Base64 Algorithmus aus dem RFC 2045 vorzugehen. Dabei müssen jedoch die Beschränkungen, die in MIME hinsichtlich der Zeilenlänge gelten, in SOAP nicht beachtet werden. SOAP definiert einen Datentyp vor, der Base64- codierte Byte-Arrays aufnimmt: SOAP-Enc:base64.
<bild xsi:type="SOAP-ENC:base64"> aG93IG5vDyBicm73biBjb3cNCg== </bild>
Viele Programmiersprachen unterstützen Variablen, deren Daten während der Laufzeit auf unterschiedliche Art und Weise interpretiert werden können. Eine solche Variableninstanz muss in SOAP das xsi:type-Attribut besitzen, welches den Typ des aktuellen Werts beschreibt. Die variante Variable "preis", die einen Wert des Typs "xsd:float" enthält, würde wie folgt beschrieben werden:
<preis xsi:type="xsd:float">19.99</preis>... wohingegen die gleiche Variable eines invarianten Typs so codiert werden kann:
<preis>19.99</preis>