Crearea aplicațiilor MSXML

Există mai multe moduri de a folosi de MSXML, pentru a crea aplicații care efectuează procesarea XML.

Puteți utiliza Document Object Model (DOM), folosind un limbaj de scripting ca un proces izolat.

Puteți utiliza modelul DOM sau un API simplu pentru XML (SAX2) folosind limbajul C ++. Puteți utiliza, de asemenea, API-ul sau în orice limbă de dezvoltare a sistemului, aveți posibilitatea să utilizați controale ActiveX sau COM-obiecte.

Review-uri au, adesea este dificil pentru dezvoltatorii de a construi și rula aplicația MSXML. Dezvoltatorii, uneori folosesc diferite versiuni ale bibliotecii, acestea sunt de așteptat. Uneori este greu doar pentru a le obține pentru a rula aplicația. Există o serie de probleme care trebuie avute în vedere la crearea de aplicații. Această secțiune listează problemele și recomandările.

Despre exemplele

Cele mai multe dintre exemple, MSXML SDK oferă o lucrare prevăzută cu MSXML 3.0 și MSXML 6.0. Această secțiune conține instrucțiuni referitoare la efectuarea MSXML 3.0 exemple lucreze cu MSXML 6.0. Câteva exemple de MSXML 3.0 nu funcționează cu MSXML 6.0 din mai multe motive, printre care:

Exemple de limba MSXML 3.0, folosind un document Type Definition (DTD) nu funcționează cu MSXML 6.0 fără modificări, deoarece MSXML 6.0 dezactivează implicit DTD.

Exemple de limba MSXML 3.0, folosind reducerea datelor XML (XDR) schemă nu funcționează cu MSXML 6.0. Funcțională posibilitate XDR schemă a fost eliminată din MSXML 6.0 serviciu.

CLASS_IDs Explicație, identificatorii GUID și ProgID

Când creați un obiect COM și un ActiveX, cum ar fi de MSXML, trebuie să determine ce fel de control pe care doriți să creați. În cazul MSXML, în cazul în care există mai multe versiuni, trebuie să creați o instanță a controlului în așa fel încât să obțineți versiunea corectă a comenzii aveți nevoie. În primul rând trebuie să știți câteva informații de bază despre modul în care controalele și operarea COM-obiecte ActiveX.

Un control ActiveX este în cele din urmă a determinat GUID, care este un număr foarte mare unic atribuit controlului. Acest lucru este cel mai adesea exprimată ca număr hexazecimal. Identificator EXEMPLU GUID - 88d96a05-f192 - 11d 4-a65f-0040963251e5. GUID-ul este numit classid de control. Cu toate acestea convenabil de a utiliza GUID pentru a identifica și de a crea un control. În schimb, există două moduri de a face referire la un control ActiveX:

Dacă utilizați un limbaj de scripting, puteți defini un control cu ​​ajutorul său ProgID, care este o formă care este mai ușor de citit de oameni. EXEMPLU ProgID Msxml2.DOMDocument.6.0.

Dacă utilizați C ++ puteți crea un control prin numele său simbolic. Acest nume, care este definit ca un macro în fișierul antet. Un exemplu de un nume simbolic - CLSID_DOMDocument60. Atunci când se utilizează acest nume simbolic într-un program C ++ permite controlul GUID.

Când instalați controlul ActiveX sau COM, a creat intrări din regiștri care determină corespondența dintre GUID, ProgID și poziția componentei.

Când se folosește un limbaj de scripting, cum ar fi VBScript sau JScript, pentru a crea un motor de scriptare de control ia căutare de locuri de muncă ProgID un GUID în registru pentru a crea controlul corect cu ajutorul GUID sale.

Explicație ProgID de denumire

Notați numele PROGID proiectului. Despre versiunile de MSXML versiunea 3.0 la versiunea 6.0 a numelui proiectului - MSXML2 descris. PROGID utilizare MSXML2 descrie motive de compatibilitate: există o serie de motive tehnice, dintre care niciunul nu are o valoare, care, în acest context, și care se află în afara domeniului de aplicare a acestui document. Principalul important să ne amintim că atunci când se utilizează ProgID Msxml2.DOMDocument.6.0. doar MSXML2 este descrisă în numele nu înseamnă că utilizați MSXML versiunea 2; într-adevăr pe care îl utilizați versiunea 6.

Există doi identificatori ProgID, puteți utiliza cu MSXML 3.0: MSXML2.DOMDocument sau Msxml2.DOMDocument.3.0. Sub GUID și informațiile ProgID Citiți mai multe.

Încercarea de a rula exemplu pentru versiunea de MSXML, nu este instalat

Cea mai frecventă greșeală, dar una dintre oportunitatile mai frustrant pentru noi programatori de MSXML, este încercarea de a realiza o aplicație XML (de obicei, scrise folosind un limbaj de scripting), utilizați versiunea de MSXML, nu este instalat pe computer. În acest caz, apare un mesaj de eroare, „server de automatizare nu poate crea obiect.“

Când se produce această eroare, trebuie să faceți unul din două lucruri - trebuie să setați versiunea țintă de MSXML, trebuie fie să modificați script-ul pentru a utiliza identificator ProgID pentru versiunea de MSXML, instalat pe computer. Pentru mai multe informații, consultați. Instalarea și diseminarea MSXML.

Poate că acest lucru este eroare mai puțin frecvente pentru dezvoltatorii C ++ decât programatori script. dezvoltatorii C ++ pentru a ști ce pentru a construi cererea dumneavoastră, au nevoie de acces la fișier antet MSXML necesită bibliotecă corespunzătoare. MSXML fișiere antet și biblioteci sunt instalate atunci când instalați pachetul MSXML SDK, astfel încât, dacă acestea sunt disponibile pentru compilarea și conectarea, au instalat versiunea corectă a MSXML.

Programator in C ++, desigur, trebuie să vă asigurați că în cazul în care distribuie aplicațiile pe care le instalați versiunea corectă a MSXML pe calculatoarele țintă. Imposibilitatea de a face acest lucru va duce la o eroare a avut loc în timp ce încerca pentru a rula lor exe-fișier: „Această aplicație nu pornește din cauza unei configurație incorectă a cererii. Reinstalarea aplicației poate rezolva această problemă „Reinstalarea aplicații nu elimină problema .; Deși instalarea versiunii corecte este MSXML.

Utilizarea XML în Internet Explorer

Există mai multe modalități de a utiliza XML în utilizarea aplicației web Internet Explorer.

XSLT poate fi inițiată în scenariu. Când utilizați XSLT, astfel încât să aibă capacitatea de a specifica versiunea ProgID dependentă, deci este posibil să se specifica versiunea exactă a MSXML, pe care doriți să o utilizați. De asemenea, în această abordare, aveți posibilitatea de a utiliza funcții suplimentare, cum ar fi XSD-schemă și cache schemă. Când se folosește această metodă, asigurați-vă că pentru a înlocui ProgID ProgID special, corespunde versiunii de MSXML, pe care doriți să o utilizați. Inițiați Sub script XSLT pentru acest tip de exemplu.

Un mai complex de inițiere exemplu XSLT în scenariu, împreună cu exemple de utilizare a XPath, pot fi găsite în aplicațiile XPath Tutorial.

Aplicații de construcții cu JScript

Acesta este adesea convenabil pentru a rula script-uri de sine stătătoare în VBScript sau JScript. Acest lucru este util dacă înveți XML. De asemenea, este util atunci când se utilizează o serie de instrumente XML, cum ar fi XSLT pentru a transforma XML-documente de la o formă la alta; Un exemplu ar fi necesară procesarea și conversia datelor după export de date dintr-o bază de date și înainte de importul în altul. Dacă această operațiune one-off nu este necesară pentru a automatiza procesul. În schimb, puteți executa pur și simplu program de JScript care utilizează DOM pentru a efectua conversia.

JScript înainte de a rula aplicația, asigurați-vă că îl modificați astfel încât să creați un obiect ActiveX pentru versiunea de MSXML, este necesară. Aplicațiile creează de obicei un obiect DOMDocument după cum urmează:

Sub GUID și informațiile ProgID pentru a determina corect ID-ul ProgID.

Un exemplu care ilustrează programarea MSXML folosind VBScript este disponibil pe validarea XML DTD (VBScript). Acest exemplu a fost testat cu MSXML 3.0 și MSXML 6.0.

Aplicații Utilizarea C ++ Crearea

Dacă utilizați C ++ MSXML, o serie de acțiuni necesare pentru a construi și rula aplicația. Printre acestea se numără:

Configurarea directoare pentru includ fișiere - trebuie să adăugați o intrare în directorul inc MSXML SDK.

Creați un director pentru lib-files - trebuie să adăugați o intrare în directorul lib în MSXML SDK.

În proprietățile proiectului, specificând biblioteca MSXML în care doriți să o conectați la aplicație.

Schimbarea sursei, de exemplu, sau cererea de a include serviciul corespunzător MSMXL fișier antet.

Schimbarea sursei, de exemplu, sau aplicația pentru a utiliza versiunea corectă ID classid de MSXML, pe care îl utilizați.

Asigurându-vă că dinamic biblioteca link-ul MSXML (DLL), pe drum. De obicei Msxml3.dll, MSXML4.dll, MSXML5.dll MSXML6.dll și plasat în directorul Windows \ System32.

Tabelul următor listează versiunile MSXML, numele din titlu, numele și numele bibliotecii de fișier DLL.

articole similare