I was looking at the schema.
Code:
  <xs:element name="modifyItemResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="types:modified" />
        <xs:element minOccurs="0" maxOccurs="unbounded" name="id" type="types:uid" />
        <xs:element name="status" type="types:Status" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
Will modifyItemResponse ever return more than one id?

I would think it should be like this...
Code:
  <xs:element name="modifyItemResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="types:modified" />
        <xs:element minOccurs="0" maxOccurs="1" name="id" type="types:uid" />
        <xs:element name="status" type="types:Status" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
The same thing goes for delegateResponse.