Reguli pentru derivarea tipurilor simple

Clasa XmlSchemaInference verifică simultan valorile elementelor și ale atributelor. Pe măsură ce sunt detectate valorile, se afișează tipul cel mai restrâns nesemnat. Dacă un atribut sau un element a fost deja redat cu un tip și noua valoare detectată nu corespunde tipului de ieșire curent, atunci tipul derivat este ridicat la un tip nou care se aplică atât tipului de ieșire curent, cât și valorii noi. Clasa XmlSchemaInference nu ia în considerare valorile anterioare atunci când tipul derivat este ridicat.







De exemplu, luați în considerare următoarele fragmente XML din cele două documente XML.







Dacă se găsește prima valoare attr1, tipul attr1 este afișat ca unsignedByte pe baza valorii 12. Când se detectează a doua valoare attr1. tip este ridicată la unsignedShort pe baza tipului de nesemnatByte de ieșire curent și a valorii curente de 52344.

Acum, ia în considerare următoarele XML din două documente XML.

Dacă se găsește prima valoare attr2, tipul attr2 este afișat ca unsignedByte pe baza valorii 0. Dacă se găsește o a doua valoare attr2, tipul este ridicat la șir pe baza tipului curent nesignatByte și a valorii curente a true. deoarece clasa XmlSchemaInference nu ia în considerare valorile anterioare atunci când tipul de ieșire este ridicat. Cu toate acestea, dacă ambele instanțe attr2 au fost găsite într-un document XML, și nu în două documente XML diferite, după cum se arată mai sus, atunci attr2 va fi afișat ca boolean.







Articole similare

Trimiteți-le prietenilor: