Konvertálása XSD XML
Konvertálása XSD XML
A programom húz adatokat egy XML fájl közvetlenül (ChildValues []). Az XML minden rendben van, de nem volt olyan feladat, hogy adatokat fogadni az XSD. Hogyan lehet átalakítani a belső XSD-fájlt XML-adatokat?
Nem fogja kérni, hogy hogyan valósítható meg? Nem tudok rájönni, hogy mit kell használni és olvasni az értékeket. Az XML-ben ChildValues [], de keltésére neki, hogy aludni XSD hibákat.
Ha nem nehéz - egyszerű példát dolgozni XSD, pliz. Legalább egy számláló értéket. Minden internetes kotorászott - Nitsche érdemes nem :(
XSD is xml. Mik a problémák?
Sehol értéke feliratot :( lehetőség tárolni értékeket, és az XML feltétlenül több húzza? Akkor miért XSD van szükség, ha ez lehetséges, hogy vegye ki a teljes régi XML?
de nem volt olyan feladat, hogy adatokat fogadni az XSD.
Ön határozza meg az első, van adat, hogy szükséges-e az XSD és minden mást.
Majd par ember agya.
Kidolgozza tárolt tárgyak és azok tulajdonságait a kétoldalas XSD-fájl (például TLabel komponenst és kötődését Caption). Saját programot kell letölteni ezt a fájlt, és adjunk hozzá ezeket a tárgyakat a formában.
Ugyanaz az XML tettem, minden egyszerű volt, és a szilárd vezető rake. Még nem értem, hogyan lehet hivatkozni egy adott elem, fájl szerkezetét hozza fejfájás.
XSD nafik Nem kell, de az ügyfél fájlokat, akkor nem csinál semmit :(
Még nem értem, hogyan lehet hivatkozni egy adott elem
Igen, csak úgy, mint egy egyszerű XML.
Mivel XSD is XML.
XSD - egy rajz leíró XML dokumentum
A XSD csak tartotta a területen, az adattípusok, azok sorrendjét, és semmi mást.
adatot kell tárolni, külön XML dokumentum. Való megfelelés ellenőrzése (validálás) betölteni XML elemzőt, hogy csatlakoztassa a XSD séma
XMLValidate.js:
var sOutput = validateFile ( "100000.xml");
Wscript.echo (sOutput);
működnek validateFile (strFile)
# XA0; # XA0; // Létrehozunk egy sémagyorsítótár és add books.xsd rá.
# XA0; # XA0; var xs = new ActiveXObject ( "MSXML2.XMLSchemaCache.4.0");
# XA0; # XA0; xs.add ( "", "ICHB_EA.xsd");
# XA0; # XA0; // Létrehozunk egy XML DOMDocument objektumot.
# XA0; # XA0; var xd = new ActiveXObject ( "MSXML2.DOMDocument.4.0");
# XA0; # XA0; // a sémagyorsítótár a DOMDocument „s
# XA0; # XA0; // sémák gyűjteménye.
# XA0; # XA0; xd.schemas = xs;
# XA0; # XA0; // Load books.xml a DOM dokumentumot.
# XA0; # XA0; xd.async = false;
# XA0; # XA0; xd.validateOnParse = true;
# XA0; # XA0; xd.resolveExternals = true;
# XA0; # XA0; xd.load (strFile);
# XA0; # XA0; // Vissza érvényesítés eredmények üzenetet küld a felhasználónak.
# XA0; # XA0; ha (xd.parseError.errorCode = 0!)
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; visszatérés ( „ellenőrzés sikertelen a” + strFile +
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; "\ n =====================" +
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; "\ nOk:" + xd.parseError.reason +
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; "\ nSource:" + xd.parseError.srcText +
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; "\ nLINE:" + xd.parseError.line + "\ n");
# XA0; # XA0;>
# XA0; # XA0; máshol
# XA0; # XA0; # XA0; # XA0; visszatérés ( "Validation sikerült a" + strFile +
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; "\ n ====================== \ n" +
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; xd.xml + "\ n");
>
OK, a xml:
# XA0; eredmény: = xml.ChildNodes [ "csomópont"] ChildValues [ "elem"] ;. *
Már az XSD alapján létrehozott azonos xml az XML Mapper, nem tekercsben. Hol ásni?
És hol látja a XSD csomópont neve „csomópont”?
Akkor hogyan fordulni „elem neve” tartalom> cantalia # XA0; (24.08.07 11:12) [4]
?
Köszönjük, és ugyanaz :(
> [13] cantalia # XA0; (24.08.07 11:57)
xs: - névtér
meg kell határoznia azt elérésekor a csomópontot.
Ha azt szeretnénk, hogy figyelmen kívül hagyja azt, akkor (például XPath)
rootNode.selectSingleNode ( "* [helyi-neve () =" elem "]")
Tegyük fel, hogy ki kell húzni a XSD (lásd. [4]), az érték
Seq-nem kell írni:
Eredmény: = xml.ChildNodes [ "xs: element"] ChildValues [ "név"] ;.
?
Nem kivenni :(
var
# XA0; Doc: TXMLDocument;
# XA0; Csomópont: IXMLNode;
# XA0; V: OleVariant;
# XA0; Doc: = TXmlDocument.Create (Self);
# XA0; Doc.LoadFromFile ( "c: \ test.xsd");
# XA0; Doc.Active: = true;
# XA0; Csomópont: = Doc.DocumentElement;
# XA0; V: = Node.ChildNodes [ "xs: element"] Attribútumok [ "név"] ;.
Folyamatosan azt írja: „Csak egy felső elem megengedett XML dokumentum”.
Példa Ön teljesen azonosak az enyémhez. Esküszik. Mi a baj?
> cantalia # XA0; (24.08.07 13:56) [19]
Minden rájöttek, a hiba volt, a jelzést az XML helyett csomópont [11 cm]
Csomópont: = Doc.DocumentElement;
Eredmény: = xml.ChildNodes [ "csomópont"] ChildValues [ "elem"] ;. # XA0; // hiba!
Eredmény: = node.ChildNodes [ "csomópont"] ChildValues [ "elem"] ;. // OK
Köszönöm szépen az összes, külön tisztelet clickmaker :)
Egy másik kérdés: hogyan lehet lépni a következő. eleme a ciklusban?
# XA0;
# XA0; # XA0;
# XA0; # XA0; # XA0;
# XA0; # XA0; # XA0;
# XA0; # XA0; # XA0;
# XA0; # XA0;
# XA0;
Ebben a fájlban van, hogy felváltva kap TImage, TLabel és TBitBtn.
Én ezzel:
Node.ChildNodes.Nodes [ "complexType"] ChildNodes [ "szekvencia"] ChildNodes [ "elem"] .Attributes [ "name"] ..;
Ugyanezt az TImage attribútumot. Hogyan kap egy listát az összes attribútum?
i: = 0 ChildNodes.Count-1