私はDjangoモデルを持っています
class OrderItem(models.Model):
comment = models.CharField('comment', max_length=255, blank=True)
.....
重要ではないその他の分野。
そして、私はこのように記述されたスパインモデルを持っています
class OrderItemModel(DjangoComplexModel):
__type_name__ = 'OrderItem'
class Attributes(DjangoComplexModel.Attributes):
django_model = OrderItem
および応答を生成する関数
@rpc(Int, _returns=Iterable(OrderItemModel))
def GetOrderItems(self, id):
order = get_object(Order, pk=id)
items = order.objects.all()
return items
xmlの説明は
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Body>
<SaveOrderItem xmlns="app.sync">
<model>
<comment xmlns="app.sync.models">[normalizedString]</comment>
</model>
</SaveOrderItem>
</Body>
</Envelope>
リクエストを行ってからレスポンスを検証し、コメントの開始または終了の OS 文字列にスペースがあることが判明した場合、サーバーは例外を発生させます。私が理解しているように、型 normalizedString はストリップされていない文字列を使用することを許可していません。そのタイプの文字列からその場でスペースを削除する方法も同様です。ソースを調べて、クラス定義を見つけました
class NormalizedString(Unicode):
__type_name__ = 'normalizedString'
__extends__ = Unicode
class Attributes(Unicode.Attributes):
white_space = "replace"
そのため、 white_space = "replace"はクライアント側でそのチェックを行います。