Sématámogatási szint
Ez a szakasz a sématámogatási szinttel kapcsolatos részleteket ismerteti.
A séma közvetlenül a következőket támogatja:
- Elemek sorozatai.
- Elemtípusok származtatása.
- Egyszerű elemek (azok, amelyek egy címkézett unióhoz vannak megfeleltetve).
- Az XSD/.NET bináris formátum által definiált alaptípusok, beleértve a tartományokat (min/max).
- Egyszerű támogatás bármely elemhez (nincs korlátozás az elem típusára).
- Választható elemek és attribútumok alapértelmezett értékekkel.
- Ismétlődő elemek tartományokkal (min/max).
- Nillable elemek.
A séma nem támogatja közvetlenül a következőket (ami a "tartalék" viselkedést jelenti):
- Felhasználó által definiált alaptípusok.
- Bonyolultabb lehetőségek.
- Ismeretlen attribútumok elvetése.
- Ismeretlen attribútumok lekerekítése.
- Bonyolultabb támogatás bármilyen elemhez.
- Az összes szerkezet.
- Key/keyref.
Az alábbiakban részletesen részletezi a különböző sémaösszetevők támogatását. A WCF-ben az adatszerződéssel hasonlítják össze, mert a funkciók hasonlósága miatt. A különbséget ismertetjük.
Általában a tartalék viselkedések esetében:
- attribútumok WS_STRING;
- elemtartalmak WS_XML_BUFFER.
- A complexType egy WS_XML_BUFFER mezőt tartalmazó struktúrára épül.
- Az egyszerű típusok WS_STRING.
A wsutil figyelmeztetéseket generál a jelenleg nem teljes mértékben támogatott sémaösszetevőkhöz. Előfordulhat, hogy az alkalmazásnak további ellenőrzést kell végeznie ezen összetevők esetében. A túlóra wsutil továbbfejleszthető a futtatókörnyezetben jelenleg támogatott egyes funkciók kezeléséhez, például az alapértelmezett értéktámogatáshoz. A wsutil a szerializálással együtt fejleszthető más funkciók, például az absztrakt funkciók támogatása érdekében is. A nem támogatott sémaösszetevők száma idővel csökkenthető.
Az általános sémadokumentum
Globális definíció, amely hatással lehet a séma beágyazott definícióira. Ezek globális attribútumok, amelyek a séma összes definíciója esetében alkalmazhatók.
<xs:schema> attribútumok
- attributeFromDefault Ignored.
- blockDefault Ignored.
- elementFormDefault Ignored. Ez eltér a dataContracttól, mivel a nem minősített elemek futásidőben támogatottak.
- finalDefault Ignored. A végleges koncepcióhoz nincs C nyelvi támogatás.
- az azonosító figyelmen kívül hagyva.
- a targetNamespace támogatott, és a szolgáltatásnévtérre van megfeleltetve.
- A verzió figyelmen kívül hagyva.
<xs:schema> tartalma
- támogatottak; A wsutil megköveteli, hogy az összes szükséges definíció bemeneti fájlként legyen elérhető a fordítási idő alatt.
- újradefiniált mellőzve. Ezt a wsutil nem támogatja.
- importálás támogatott; A wsutil megköveteli, hogy az összes szükséges definíció bemeneti fájlként legyen elérhető a fordítási idő alatt.
- simpleType Támogatott– lásd az alábbi egyszerű típusszakaszt.
- complexType Támogatott– lásd a "complexType" szakaszt
- csoport figyelmen kívül hagyva.
- az attribútumcsoport figyelmen kívül hagyva.
- elem támogatott; globális elemdefiníciókra.
- attribútum támogatott; globális attribútumdefiníciókra képez le.
- jelölés figyelmen kívül hagyva
Összetett típus
A <xs:complexType>által képviselt összetett típus lehet egyszerű vagy összetett típus korlátozása, egyszerű típus kiterjesztése, tömbök vagy struktúra. Észrevette, hogy az egyszerű típusok bővítményében nincs öröklés és nincs xsi:type támogatás.
<xs:complexType> attribútumok
- absztrakt Figyelmeztetés létrehozása a nem támogatott funkciókról, a kódlétrehozás módosítása nélkül.
- tiltsa le a nem támogatott funkcióra vonatkozó figyelmeztetés létrehozását, és ne módosítsa a kódgenerálást.
- végleges Figyelmeztetés létrehozása a nem támogatott funkcióról, a kódgenerálás módosítása nélkül.
- az azonosító figyelmen kívül hagyva.
- vegyes figyelmeztetés létrehozása a nem támogatott funkciókról, a szerkezetre való visszalépés WS_XML_BUFFER, ha igaz.
- A név támogatott, és a struktúratípus nevére van megfeleltetve.
<xs:complexType> tartalma
Ez a struktúra típusdefiníciója. A complexContent korlátozás nem támogatott.
- complexContent Support komplex tartalombővítmény. Leképezések az öröklődés szerkezetéhez.
- csoport Jelenleg visszaesik a struktúrába WS_XML_BUFFER mezővel. Az alatta lévő részecske alapján is támogatható.
- egyesítésként támogatott választási lehetőség. Ez az adatszerződésben nem támogatott.
- szekvencia támogatott – egy struktúra mezőire képez le térképeket
- attribútum a "tiltott" kivételével támogatott. ha "tiltott", WS_XML_BUFFER vissza kell állítani a struktúrába.
- attributeGroup támogatott – attribútumok sorozatának leképezése
- anyAttribute Ignored
- AttributeGroupRef Támogatott – attribútumok sorozatának leképezése.
- A GroupRef jelenleg WS_XML_BUFFER mezővel visszavált a struktúrára. Az alsó csoportnak megfelelően támogatott.
- Minden támogatott, megfeleltetés a XML_BUFFER
- (üres) támogatott leképezés üres strukturált leírásra, és nem generált szerkezetet.
<xs:sequence> összetett típusban: tartalom
wsutil csak teljes mértékben támogatja a minOccurs = 1 és maxOccurs = 1 sorozatot; ellenkező esetben az összetett típus jelenleg WS_XML_BUFFER. Ez a szerkezetek tömbjeként is támogatott.
- elem támogatott; az egyes példányok a struktúra egy mezőjére képeznek le.
- Csoportos tartalék; A complexType visszaesik WS_XML_BUFFER.
- Minden tartalék; A complexType visszaesik WS_XML_BUFFER.
- támogatott választási lehetőség; megfeleltetés az egyesítő mezőre.
- sorozat-tartalék; A complexType visszaesik WS_XML_BUFFER.
- bármely támogatott; XML_BUFFER van leképezve.
- (üres) támogatott; A complexType üres struktúra lehet, ha nincsenek attribútumok.
Elemek
<xs:element>három környezetben fordulhat elő.
- Ez egy <xs:sequence>belül fordulhat elő, amely egy normál szerkezet mezőjét írja le. Ebben az esetben a maxOccurs attribútumnak 1-nek kell lennie. A mező nem kötelező, ha a minOccurs 0.
- Ez egy tömb egy mezőjét leíró <xs:sequence>belül fordulhat elő. Ebben az esetben a maxOccurs attribútumnak 1-nél nagyobbnak vagy "kötetlennek" kell lennie.
- Ez egy <xs:schema> belül fordulhat elő globális elemleírásként.
<xs:element> egy <xs:sequence> vagy <xs:choice> mezőként egy struktúrában
- ref támogatott; globális elemre való hivatkozással oldható fel.
- name Supported, maps to field name.
- Írja be a támogatott típust, és a mezők típusának megfeleltethető. További információ: "Típusleképezés". Ha nincs megadva (és az elem nem tartalmaz névtelen típust), xs:anyType feltételezve.
- tiltsa le a nem támogatott funkcióra vonatkozó figyelmeztetés létrehozását, és ne módosítsa a kódgenerálást.
- alapértelmezett figyelmeztetés létrehozása a nem támogatott funkcióról, a kódlétrehozás módosítása nélkül.
- kijavítottuk a nem támogatott funkcióra vonatkozó figyelmeztetést, és nem változik a kódgenerálás.
- az űrlap figyelmen kívül hagyva. Szerializálási rétegünk a minősített és a nem minősített űrlapokat is támogatja.
- az azonosító figyelmen kívül hagyva.
- a maxOccurs egyetlen adatmezőre képez le, ha az értéke 1. tömbmezőre van leképezve (ismétlődő elem), ha a maxOccurs értéke 1-nél nagyobb.
- a minOccurs ha 0, a mezőbeállítások FIELD_OPTIONAL értékre vannak állítva, ha nincs beállítva a nillable érték.
- nillable A mező nillable. További részletekért lásd szerializálási.
<xs:element> globális elemként: attribútumok
A minOccurs és a maxOccurs attribútumok globális elemleírásként érvénytelenek. Az alkalmazás közvetlenül szerializálási rétegben vagy csatornarétegekben használhatja a generált elemleírást.
- absztrakt Figyelmeztetés létrehozása a nem támogatott funkciókról, a kódlétrehozás módosítása nélkül.
- tiltsa le a nem támogatott funkcióra vonatkozó figyelmeztetés létrehozását, és ne módosítsa a kódgenerálást.
- alapértelmezett figyelmeztetés létrehozása a nem támogatott funkcióról, a kódlétrehozás módosítása nélkül.
- végleges Figyelmeztetés létrehozása a nem támogatott funkcióról, a kódgenerálás módosítása nélkül.
- kijavítottuk a nem támogatott funkcióra vonatkozó figyelmeztetést, és nem változik a kódgenerálás.
- az azonosító figyelmen kívül hagyva.
- name Supported – map to name of the global element description, and it the base for the anonymous type if specified.
- A nillable Ignored-applicationnek jobb jelölővel kell meghívnia.
- a substitutionGroup visszaesik a struktúrába WS_XML_BUFFER ha be van állítva. A wsutil nem támogatja a helyettesítéscsoportot.
- Írja be a Támogatott típust, és képezz le az elem típusára.
<xs:element> globális elemként: tartalom
- simpleType támogatott; megfelelteti a típusdefiníciót.
- a complexType támogatott; térképeket egy összetett típusra.
- egyedi figyelmeztetés létrehozása a nem támogatott funkciókról, a kódlétrehozás módosítása nélkül. A wsutil nem támogatja az elemkorlátozásokat.
- key Generate warning about unsupported feature, no change to code generation. A wsutil nem támogatja az elemkorlátozásokat.
- keyref Figyelmeztetés generálása a nem támogatott funkcióról, a kódlétrehozás módosítása nélkül. A wsutil nem támogatja az elemkorlátozásokat.
- (üres) Támogatott; a típusspecifikációt nem tartalmazó elem xs:anyType néven lesz kezelve.
Egyszerű típusok
<xs:simpleType> attribútumok
- Végleges figyelmeztetés létrehozása a nem támogatott funkciókról, a kódlétrehozás módosítása nélkül.
- Az azonosító figyelmen kívül hagyva
- A név támogatott, leképezi a nevet.
<xs:simpleType> tartalma
- A korlátozás támogatott, enumerálási típusra vagy tartományra van leképezve. Lásd: "xs:simpleType restrictions" (xs:simpleType-korlátozások) szakasz.
- Lista: Figyelmeztetés létrehozása a nem támogatott funkciókról, a XML_BUFFER való visszalépés.
- Union Generate warning about unsupported feature, fallback to XML_BUFFER.
Egyszerű típuskorlátozás
Bizonyos aspektusok az integráltípusokban és sztringek típusában engedélyezettek a tartomány és az enumerálás támogatásának engedélyezéséhez.
enumerálás támogatása
<xs:enumerálás> egyszerű típuskorlátozás a sztring alaptípusára enumerálási típusként van kezelve. Ebben az esetben az Alap attribútumnak sztringtípusnak kell lennie. Enumerálás esetén a rendszer figyelmen kívül hagyja az összes többi aspektust.
tartomány egyszerű típustámogatáson
Egyes aspektusok az egyszerű típusok esetében támogatottak, amelyek hatékonyan támogatják a típuson engedélyezett tartományt. Az alábbiakban az integráltípusokra és a lebegőpontos/kettős típusokra vonatkozó korlátozásokat íme. A más aspektusokkal rendelkező egyszerű típusok WS_STRING típusra kerülnek
- minExclusive támogatott
- minInclusive támogatott
- maxExclusive támogatott
- maxInclusive támogatott
- totalDigits Figyelmeztetést generál a nem támogatott funkcióval kapcsolatban, nincs változás a kódgenerálásban.
- a fractionDigits figyelmeztetést generál a nem támogatott funkciókról, a kódlétrehozás nem változik.
- length Figyelmeztetés létrehozása a nem támogatott funkcióról, a kódlétrehozás módosítása nélkül.
- minLength Figyelmeztetés létrehozása a nem támogatott funkcióról, a kódlétrehozás módosítása nélkül.
- maxLength Figyelmeztetés generálása a nem támogatott funkcióról, a kódlétrehozás módosítása nélkül.
- enumerálás Figyelmeztetés generálása a nem támogatott funkcióval kapcsolatban, a kódlétrehozás módosítása nélkül.
- whiteSpace – Figyelmeztetés létrehozása a nem támogatott funkciókról, a kódlétrehozás módosítása nélkül.
- minta: Figyelmeztetés létrehozása a nem támogatott funkciókról, a kódlétrehozás módosítása nélkül.
- (üres) Támogatott.
a minLength és a maxLength sztringen jelenleg nem támogatott, de kívánatos funkció a támogatáshoz.
Örökség
A Wsutil támogatja az összetett típusok öröklését, vagyis egy struktúra egy másik struktúrából örökölhet, hasonlóan a C++ interfészörökléséhez. Ez az xs:complexContentExtension><keresztül történik. <xs:simpleContentExtension> támogatott, de a típusöröklés helyett egyszerű szerkezetként jön létre alaptípussal.
Típus/primitív leképezés
Az azonosítókat normalizálni kell az XML-ben lévő NCNamesből való fordításkor. A sztringek nem választhatók; a mutatótípusok nem választhatók; az integráltípusok és a lebegőpontos/dupla típusok nem választhatók, a defaultValue értéke pedig 0.