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