Megosztás a következőn keresztül:


Szerializációs

A szerializálás a C-adatstruktúrákban (szerkezetekben, tömbökben és primitív értékekben) lévő értékek XML-elemként történő írásának folyamata. A deszerializálás a fordított folyamat.

A szerializálás a C-adatstruktúrákban (struktúrákban, tömbökben és primitív értékekben) lévő értékek XML-elemként történő írásának folyamata. A deszerializálás a fordított folyamat.

Mindkét folyamat a C adatstruktúrák és az XML közötti leképezés leírásán alapul.

Diagram, amely bemutatja, hogy a szerializálás és a deszerializálás hogyan támaszkodik a C adatstruktúrák és az XML közötti leképezés leírására.

Egy érték szerializálásához az alkalmazás meghívja WsWriteElement, WsWriteAttribute vagy WsWriteType.

Egy érték deszerializálásához az alkalmazás meghívja WsReadElement, WsReadAttribute vagy WsReadType.

Biztonság

XML-olvasó a deszerializálási folyamat során használatos. Tekintse meg az XML-olvasó biztonsági szakaszát az XML-hez kapcsolódó biztonsági információkért.

A deszerializáló mindaddig deszerializálja az adatokat, amíg be nem fejeződik a deszerializálandó elem olvasása. A deszerializálási folyamat meghiúsul, ha olyan XML-dokumentumba ütközik, amely nem felel meg a deszerializált adatok leírásának. Ezen a ponton a használt XML-olvasó érvénytelenné válik, és a rendszer hibát ad vissza.

Alapértelmezés szerint a deszerializálás szigorú. A deszerializálás meghiúsulását okozó feltételek közé tartoznak többek között a következők:

  • A várt elemek hiányoznak
  • Váratlan elemmezők jelennek meg a szükséges elemek között
  • Extra elemtartalom a szükséges mezők után, kivéve, ha a WS_STRUCT_IGNORE_TRAILING_ELEMENT_CONTENT
  • Váratlan attribútumok, kivéve, ha WS_STRUCT_IGNORE_UNHANDLED_ATTRIBUTES jelző van megadva
  • Nem várt adattípus-érték, amely kívül esik a megadott tartományon
  • Az ismétlődő elem száma kívül esik a megadott tartományon

A nagy mennyiségű adat szerializálása túlzott memóriafoglalást okozhat, és szolgáltatásmegtagadási támadást okozhat. Az adatokat deszerializáló felhasználónak meg kell adnia egy halomobjektumot az adatok lefoglalásához, és a felhasználó a halomfoglalási korlátot használhatja a memóriafoglalási támadás megelőzésére.

Az adattípusok tartománytámogatása, beleértve a sztring maximális hosszát, a tömbök maximális elemszámát stb., lehetővé teszi a felhasználó számára a különböző adattípusok maximális méretének szabályozását. A felhasználó megadhat tartományt az adatleírásban vagy a sémában a különböző adatok maximális méretének korlátozásához.

A drótformátumokban (szöveg, bináris, MTOM) a beágyazott nullát tartalmazó sztringértékek támogatottak. Ha beágyazott nullával deszerializál egy sztringet, a felhasználónak megszámlált sztringet (WS_STRING) kell használnia, hogy a nulla ne keverje össze a sztring hosszának számítását. Ha egy beágyazott nullát tartalmazó sztringérték deszerializálva lesz egy nulla végződésű sztringet váró mezőbe, a program hibát ad vissza, és a deszerializálás sikertelen lesz. Ha a wsutil az adatleírások létrehozásához használatos, akkor a /string:WS_STRING beállítást kell használni, ha a beágyazott nullával rendelkező sztring várható.

A szerializálás a következő visszahívásokat használja:

A szerializálás a következő enumerálásokat használja:

A szerializálás a következő függvényeket használja:

A szerializálás a következő struktúrákat használja: