|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Je vais devoir récupérer les infos d'un fichier XML pouvant être assez gros (100 mo et plus), et qui répondra au xsd ci-joint.
Quelle est la bonne méthode pour digérer tout ça de façon efficace (rapide j'entends). TXMLDocument ?? Sax ? Autre ?... |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
surtout pas TxmlDocument ! pour 100Mo uniquement Sax ...
regarde sur torry.net le composant Alcinoe (TalXmlDocument) ... ou sur sourceforge. ca tiens dans une seule unité. C'est un composant qui fonctionne comme le TXMLDocument (meme propriété) mais qui te permet de faire du sax, c'est donc simple et pratique ![]() sinon y a pierre y qui à fait un truc aussi je pense a++ stephane "FOST©" <exe@dll.com> wrote in message news:fp1qpv$8lm$1@sd-6836.dedibox.fr... > Je vais devoir récupérer les infos d'un fichier XML pouvant être assez gros (100 mo et plus), et qui répondra au xsd ci-joint. > Quelle est la bonne méthode pour digérer tout ça de façon efficace (rapide j'entends). TXMLDocument ?? Sax ? Autre ?... > -------------------------------------------------------------------------------- > <?xml version="1.0" encoding="utf-8" ?> > <xs:schema id="Diagnostic" > targetNamespace="http://schemas.bvdep.com/Diagnostic.xsd" > elementFormDefault="qualified" > xmlns="http://schemas.bvdep.com/Diagnostic.xsd" > xmlns:mstns="http://schemas.bvdep.com/Diagnostic.xsd" > xmlns:xs="http://www.w3.org/2001/XMLSchema"> > > <xs:simpleType name="siretType"> > <xs:restriction base="xs:string"> > <xs:pattern value="[0-9]{9}-[0-9]{5}"></xs:pattern> > </xs:restriction> > </xs:simpleType> > > <xs:simpleType name="postType"> > <xs:restriction base="xs:positiveInteger"> > <xs:pattern value="[0-9]{5}"></xs:pattern> > </xs:restriction> > </xs:simpleType> > > <xs:simpleType name="moisType"> > <xs:restriction base="xs:positiveInteger"> > <xs:pattern value="[0-9]{2}"></xs:pattern> > </xs:restriction> > </xs:simpleType> > > <xs:simpleType name="nafType"> > <xs:restriction base="xs:string"> > <xs:pattern value="[0-9]{3}[A-Z]{1}"></xs:pattern> > </xs:restriction> > </xs:simpleType> > > <xs:simpleType name="anneeType"> > <xs:restriction base="xs:integer"> > <xs:pattern value="[0-9]{4}"></xs:pattern> > </xs:restriction> > </xs:simpleType> > > <xs:simpleType name="noemptystringType"> > <xs:restriction base="xs:string"> > <xs:minLength value="1"/> > </xs:restriction> > </xs:simpleType> > > <xs:simpleType name="stringOrNa"> > <xs:union memberTypes="noemptystringType"> > <xs:simpleType id="notAvailable1"> > <xs:restriction base="xs:string"> > <xs:enumeration value="N.D."></xs:enumeration> > </xs:restriction> > </xs:simpleType> > </xs:union> > </xs:simpleType> > > <xs:simpleType name="doubleOrNa"> > <xs:union memberTypes="xs:double"> > <xs:simpleType id="notAvailable2"> > <xs:restriction base="xs:string"> > <xs:enumeration value="N.D."></xs:enumeration> > </xs:restriction> > </xs:simpleType> > </xs:union> > </xs:simpleType> > > <xs:simpleType name="dateOrNa"> > <xs:union memberTypes="xs:date"> > <xs:simpleType id="notAvailable5"> > <xs:restriction base="xs:string"> > <xs:enumeration value="N.D."></xs:enumeration> > </xs:restriction> > </xs:simpleType> > </xs:union> > </xs:simpleType> > > <xs:simpleType name="postOrNa"> > <xs:union memberTypes="postType"> > <xs:simpleType id="notAvailable3"> > <xs:restriction base="xs:string"> > <xs:enumeration value="N.D."></xs:enumeration> > </xs:restriction> > </xs:simpleType> > </xs:union> > </xs:simpleType> > > <xs:simpleType name="nafOrNa"> > <xs:union memberTypes="nafType"> > <xs:simpleType id="notAvailable4"> > <xs:restriction base="xs:string"> > <xs:enumeration value="N.D."></xs:enumeration> > </xs:restriction> > </xs:simpleType> > </xs:union> > </xs:simpleType> > > <xs:simpleType name="anneeOrNa"> > <xs:union memberTypes="anneeType"> > <xs:simpleType id="notAvailable6"> > <xs:restriction base="xs:string"> > <xs:enumeration value="N.D."></xs:enumeration> > </xs:restriction> > </xs:simpleType> > </xs:union> > </xs:simpleType> > > <xs:simpleType name="integerOrNa"> > <xs:union memberTypes="xs:integer"> > <xs:simpleType id="notAvailable7"> > <xs:restriction base="xs:string"> > <xs:enumeration value="N.D."></xs:enumeration> > </xs:restriction> > </xs:simpleType> > </xs:union> > </xs:simpleType> > > <xs:simpleType name="consoType"> > <xs:restriction base="xs:string"> > <xs:enumeration value="CONSO"></xs:enumeration> > <xs:enumeration value="SOCIAUX"></xs:enumeration> > </xs:restriction> > </xs:simpleType> > > <xs:simpleType name="indicatorType"> > <xs:restriction base="xs:string"> > <xs:enumeration value="A"></xs:enumeration> > <xs:enumeration value="A+"></xs:enumeration> > <xs:enumeration value="A-"></xs:enumeration> > <xs:enumeration value="B"></xs:enumeration> > <xs:enumeration value="B+"></xs:enumeration> > <xs:enumeration value="B-"></xs:enumeration> > <xs:enumeration value="C"></xs:enumeration> > <xs:enumeration value="C+"></xs:enumeration> > <xs:enumeration value="C-"></xs:enumeration> > <xs:enumeration value="D"></xs:enumeration> > <xs:enumeration value="D+"></xs:enumeration> > <xs:enumeration value="D-"></xs:enumeration> > </xs:restriction> > </xs:simpleType> > > <xs:simpleType name="formeType"> > <xs:restriction base="xs:integer"> > <xs:minInclusive value="0"/> > <xs:maxInclusive value="14"/> > </xs:restriction> > </xs:simpleType> > > <xs:simpleType name="situationType"> > <xs:restriction base="xs:integer"> > <xs:minInclusive value="0"/> > <xs:maxInclusive value="9"/> > </xs:restriction> > </xs:simpleType> > > <xs:complexType name="dirigeantType"> > <xs:sequence minOccurs="1" maxOccurs="1"> > <xs:element name="_TITDI1" type="stringOrNa"></xs:element> > <xs:element name="_NOMDI1" type="stringOrNa"></xs:element> > <xs:element name="_FCTDI1" type="stringOrNa"></xs:element> > <xs:element name="_ANIDI1" type="anneeOrNa"></xs:element> > </xs:sequence> > </xs:complexType> > > <xs:complexType name="dirigeantSection"> > <xs:sequence minOccurs="0" maxOccurs="unbounded"> > <xs:element name="DIRIGEANT" type="dirigeantType"></xs:element> > </xs:sequence> > </xs:complexType> > > <xs:complexType name="administrateurType"> > <xs:sequence minOccurs="1" maxOccurs="1"> > <xs:element name="_TITDI2" type="stringOrNa"></xs:element> > <xs:element name="_NOMDI2" type="stringOrNa"></xs:element> > <xs:element name="_FCTDI2" type="stringOrNa"></xs:element> > <xs:element name="_ANIDI2" type="anneeOrNa"></xs:element> > </xs:sequence> > </xs:complexType> > > <xs:complexType name="administrateurSection"> > <xs:sequence minOccurs="0" maxOccurs="unbounded"> > <xs:element name="ADMINISTRATEUR" type="administrateurType"></xs:element> > </xs:sequence> > </xs:complexType> > > <xs:complexType name="recordType"> > <xs:sequence minOccurs="1" maxOccurs="1"> > <xs:element name="_SIRET" type="siretType"/> > <xs:element name="_DATECLOT" type="xs:date"/> > <xs:element name="_NOM" type="stringOrNa"/> > <xs:element name="_SIGLE" type="stringOrNa"/> > <xs:element name="_ENSEIGNE" type="stringOrNa"/> > <xs:element name="_CODEPOSTAL" type="postOrNa"/> > <xs:element name="_VILLE" type="stringOrNa"/> > <xs:element name="_NAF" type="nafOrNa"/> > <xs:element name="_LIBNAF" type="stringOrNa"/> > <xs:element name="_NMOIS" type="moisType"/> > <xs:element name="_OBJET" type="stringOrNa"/> > <xs:element name="_CONSOL" type="consoType"/> > <xs:element name="_FORMJURID" type="formeType"/> > <xs:element name="_SIT_JURID" type="situationType"/> > <xs:element name="_DATECREAT" type="dateOrNa"/> > <xs:element name="_DERNANNEE" type="anneeOrNa"/> > <xs:element name="_CAFF" type="integerOrNa"/> > <xs:element name="_FR" type="integerOrNa"/> > <xs:element name="_YP" type="integerOrNa"/> > <xs:element name="_EE" type="integerOrNa"/> > <xs:element name="_S37" type="doubleOrNa"/> > <xs:element name="_AFDC" type="doubleOrNa"/> > <xs:element name="_YW" type="integerOrNa"/> > <xs:element name="_HK" type="integerOrNa"/> > <xs:element name="_DA" type="integerOrNa"/> > <xs:element name="_DL" type="integerOrNa"/> > <xs:element name="_AA" type="integerOrNa"/> > <xs:element name="_AB" type="integerOrNa"/> > <xs:element name="_ABN" type="integerOrNa"/> > <xs:element name="_AD" type="integerOrNa"/> > <xs:element name="_AE" type="integerOrNa"/> > <xs:element name="_ADN" type="integerOrNa"/> > <xs:element name="_AF" type="integerOrNa"/> > <xs:element name="_AG" type="integerOrNa"/> > <xs:element name="_AFN" type="integerOrNa"/> > <xs:element name="_AH" type="integerOrNa"/> > <xs:element name="_AI" type="integerOrNa"/> > <xs:element name="_AHN" type="integerOrNa"/> > <xs:element name="_AC" type="integerOrNa"/> > <xs:element name="_AJ" type="integerOrNa"/> > <xs:element name="_AK" type="integerOrNa"/> > <xs:element name="_AJN" type="integerOrNa"/> > <xs:element name="_AL" type="integerOrNa"/> > <xs:element name="_AM" type="integerOrNa"/> > <xs:element name="_ALN" type="integerOrNa"/> > <xs:element name="_A0" type="integerOrNa"/> > <xs:element name="_A1" type="integerOrNa"/> > <xs:element name="_A0N" type="integerOrNa"/> > <xs:element name="_A2" type="integerOrNa"/> > <xs:element name="_A3" type="integerOrNa"/> > <xs:element name="_A2N" type="integerOrNa"/> > <xs:element name="_AN" type="integerOrNa"/> > <xs:element name="_AO" type="integerOrNa"/> > <xs:element name="_ANN" type="integerOrNa"/> > <xs:element name="_AP" type="integerOrNa"/> > <xs:element name="_AQ" type="integerOrNa"/> > <xs:element name="_APN" type="integerOrNa"/> > <xs:element name="_AR" type="integerOrNa"/> > <xs:element name="_AS" type="integerOrNa"/> > <xs:element name="_ARN" type="integerOrNa"/> > <xs:element name="_AT" type="integerOrNa"/> > <xs:element name="_AU" type="integerOrNa"/> > <xs:element name="_ATN" type="integerOrNa"/> > <xs:element name="_AV" type="integerOrNa"/> > <xs:element name="_AW" type="integerOrNa"/> > <xs:element name="_AVN" type="integerOrNa"/> > <xs:element name="_AX" type="integerOrNa"/> > <xs:element name="_AY" type="integerOrNa"/> > <xs:element name="_AXN" type="integerOrNa"/> > <xs:element name="_A4" type="integerOrNa"/> > <xs:element name="_A5" type="integerOrNa"/> > <xs:element name="_A4N" type="integerOrNa"/> > <xs:element name="_A6" type="integerOrNa"/> > <xs:element name="_A7" type="integerOrNa"/> > <xs:element name="_A6N" type="integerOrNa"/> > <xs:element name="_AZ" type="integerOrNa"/> > <xs:element name="_CS" type="integerOrNa"/> > <xs:element name="_BA" type="integerOrNa"/> > <xs:element name="_CT" type="integerOrNa"/> > <xs:element name="_AZN" type="integerOrNa"/> > <xs:element name="_CSN" type="integerOrNa"/> > <xs:element name="_CU" type="integerOrNa"/> > <xs:element name="_CV" type="integerOrNa"/> > <xs:element name="_CUN" type="integerOrNa"/> > <xs:element name="_BB" type="integerOrNa"/> > <xs:element name="_BC" type="integerOrNa"/> > <xs:element name="_BBN" type="integerOrNa"/> > <xs:element name="_BD" type="integerOrNa"/> > <xs:element name="_BE" type="integerOrNa"/> > <xs:element name="_BDN" type="integerOrNa"/> > <xs:element name="_BF" type="integerOrNa"/> > <xs:element name="_BG" type="integerOrNa"/> > <xs:element name="_BFN" type="integerOrNa"/> > <xs:element name="_BH" type="integerOrNa"/> > <xs:element name="_BI" type="integerOrNa"/> > <xs:element name="_BHN" type="integerOrNa"/> > <xs:element name="_A8" type="integerOrNa"/> > <xs:element name="_A9" type="integerOrNa"/> > <xs:element name="_A8N" type="integerOrNa"/> > <xs:element name="_BJ" type="integerOrNa"/> > <xs:element name="_BK" type="integerOrNa"/> > <xs:element name="_BJN" type="integerOrNa"/> > <xs:element name="_BL" type="integerOrNa"/> > <xs:element name="_BM" type="integerOrNa"/> > <xs:element name="_BLN" type="integerOrNa"/> > <xs:element name="_BN" type="integerOrNa"/> > <xs:element name="_BO" type="integerOrNa"/> > <xs:element name="_BNN" type="integerOrNa"/> > <xs:element name="_BP" type="integerOrNa"/> > <xs:element name="_BQ" type="integerOrNa"/> > <xs:element name="_BPN" type="integerOrNa"/> > <xs:element name="_BR" type="integerOrNa"/> > <xs:element name="_BS" type="integerOrNa"/> > <xs:element name="_BRN" type="integerOrNa"/> > <xs:element name="_BT" type="integerOrNa"/> > <xs:element name="_BU" type="integerOrNa"/> > <xs:element name="_BTN" type="integerOrNa"/> > <xs:element name="_B0" type="integerOrNa"/> > <xs:element name="_B1" type="integerOrNa"/> > <xs:element name="_B0N" type="integerOrNa"/> > <xs:element name="_BV" type="integerOrNa"/> > <xs:element name="_BW" type="integerOrNa"/> > <xs:element name="_BVN" type="integerOrNa"/> > <xs:element name="_BX" type="integerOrNa"/> > <xs:element name="_BY" type="integerOrNa"/> > <xs:element name="_BXN" type="integerOrNa"/> > <xs:element name="_B2" type="integerOrNa"/> > <xs:element name="_B3" type="integerOrNa"/> > <xs:element name="_B2N" type="integerOrNa"/> > <xs:element name="_BZ" type="integerOrNa"/> > <xs:element name="_CA" type="integerOrNa"/> > <xs:element name="_BZN" type="integerOrNa"/> > <xs:element name="_CB" type="integerOrNa"/> > <xs:element name="_CC" type="integerOrNa"/> > <xs:element name="_CBN" type="integerOrNa"/> > <xs:element name="_CD" type="integerOrNa"/> > <xs:element name="_CE" type="integerOrNa"/> > <xs:element name="_CDN" type="integerOrNa"/> > <xs:element name="_CF" type="integerOrNa"/> > <xs:element name="_CG" type="integerOrNa"/> > <xs:element name="_CFN" type="integerOrNa"/> > <xs:element name="_B4" type="integerOrNa"/> > <xs:element name="_B5" type="integerOrNa"/> > <xs:element name="_B4N" type="integerOrNa"/> > <xs:element name="_CH" type="integerOrNa"/> > <xs:element name="_CI" type="integerOrNa"/> > <xs:element name="_CHN" type="integerOrNa"/> > <xs:element name="_CJ" type="integerOrNa"/> > <xs:element name="_CK" type="integerOrNa"/> > <xs:element name="_CJN" type="integerOrNa"/> > <xs:element name="_CL" type="integerOrNa"/> > <xs:element name="_CM" type="integerOrNa"/> > <xs:element name="_CN" type="integerOrNa"/> > <xs:element name="_CO" type="integerOrNa"/> > <xs:element name="_1A" type="integerOrNa"/> > <xs:element name="_CON" type="integerOrNa"/> > <xs:element name="_DB" type="integerOrNa"/> > <xs:element name="_DC" type="integerOrNa"/> > <xs:element name="_EK" type="integerOrNa"/> > <xs:element name="_DD" type="integerOrNa"/> > <xs:element name="_DE" type="integerOrNa"/> > <xs:element name="_DF" type="integerOrNa"/> > <xs:element name="_DG" type="integerOrNa"/> > <xs:element name="_P0" type="integerOrNa"/> > <xs:element name="_P1" type="integerOrNa"/> > <xs:element name="_DH" type="integerOrNa"/> > <xs:element name="_DI" type="integerOrNa"/> > <xs:element name="_DJ" type="integerOrNa"/> > <xs:element name="_DK" type="integerOrNa"/> > <xs:element name="_P2" type="integerOrNa"/> > <xs:element name="_P3" type="integerOrNa"/> > <xs:element name="_P4" type="integerOrNa"/> > <xs:element name="_P5" type="integerOrNa"/> > <xs:element name="_DM" type="integerOrNa"/> > <xs:element name="_DN" type="integerOrNa"/> > <xs:element name="_DO" type="integerOrNa"/> > <xs:element name="_DP" type="integerOrNa"/> > <xs:element name="_DQ" type="integerOrNa"/> > <xs:element name="_P6" type="integerOrNa"/> > <xs:element name="_DR" type="integerOrNa"/> > <xs:element name="_DS" type="integerOrNa"/> > <xs:element name="_DT" type="integerOrNa"/> > <xs:element name="_DU" type="integerOrNa"/> > <xs:element name="_DV" type="integerOrNa"/> > <xs:element name="_P7" type="integerOrNa"/> > <xs:element name="_DW" type="integerOrNa"/> > <xs:element name="_DX" type="integerOrNa"/> > <xs:element name="_DY" type="integerOrNa"/> > <xs:element name="_DZ" type="integerOrNa"/> > <xs:element name="_EA" type="integerOrNa"/> > <xs:element name="_EB" type="integerOrNa"/> > <xs:element name="_P8" type="integerOrNa"/> > <xs:element name="_EC" type="integerOrNa"/> > <xs:element name="_ED" type="integerOrNa"/> > <xs:element name="_1B" type="integerOrNa"/> > <xs:element name="_1C" type="integerOrNa"/> > <xs:element name="_1D" type="integerOrNa"/> > <xs:element name="_1E" type="integerOrNa"/> > <xs:element name="_EF" type="integerOrNa"/> > <xs:element name="_EJ" type="integerOrNa"/> > <xs:element name="_EG" type="integerOrNa"/> > <xs:element name="_EH" type="integerOrNa"/> > <xs:element name="_EI" type="integerOrNa"/> > <xs:element name="_FA" type="integerOrNa"/> > <xs:element name="_FB" type="integerOrNa"/> > <xs:element name="_FC" type="integerOrNa"/> > <xs:element name="_FD" type="integerOrNa"/> > <xs:element name="_FE" type="integerOrNa"/> > <xs:element name="_FF" type="integerOrNa"/> > <xs:element name="_FG" type="integerOrNa"/> > <xs:element name="_FH" type="integerOrNa"/> > <xs:element name="_FI" type="integerOrNa"/> > <xs:element name="_FJ" type="integerOrNa"/> > <xs:element name="_FK" type="integerOrNa"/> > <xs:element name="_FL" type="integerOrNa"/> > <xs:element name="_FM" type="integerOrNa"/> > <xs:element name="_FN" type="integerOrNa"/> > <xs:element name="_FO" type="integerOrNa"/> > <xs:element name="_FP" type="integerOrNa"/> > <xs:element name="_FQ" type="integerOrNa"/> > <xs:element name="_FS" type="integerOrNa"/> > <xs:element name="_FT" type="integerOrNa"/> > <xs:element name="_FU" type="integerOrNa"/> > <xs:element name="_FV" type="integerOrNa"/> > <xs:element name="_R0" type="integerOrNa"/> > <xs:element name="_FW" type="integerOrNa"/> > <xs:element name="_FX" type="integerOrNa"/> > <xs:element name="_FY" type="integerOrNa"/> > <xs:element name="_FZ" type="integerOrNa"/> > <xs:element name="_GA" type="integerOrNa"/> > <xs:element name="_GB" type="integerOrNa"/> > <xs:element name="_GC" type="integerOrNa"/> > <xs:element name="_GD" type="integerOrNa"/> > <xs:element name="_R1" type="integerOrNa"/> > <xs:element name="_GE" type="integerOrNa"/> > <xs:element name="_GF" type="integerOrNa"/> > <xs:element name="_GG" type="integerOrNa"/> > <xs:element name="_GH" type="integerOrNa"/> > <xs:element name="_GI" type="integerOrNa"/> > <xs:element name="_GJ" type="integerOrNa"/> > <xs:element name="_GK" type="integerOrNa"/> > <xs:element name="_GL" type="integerOrNa"/> > <xs:element name="_GM" type="integerOrNa"/> > <xs:element name="_GN" type="integerOrNa"/> > <xs:element name="_GO" type="integerOrNa"/> > <xs:element name="_R2" type="integerOrNa"/> > <xs:element name="_GP" type="integerOrNa"/> > <xs:element name="_GQ" type="integerOrNa"/> > <xs:element name="_GR" type="integerOrNa"/> > <xs:element name="_GS" type="integerOrNa"/> > <xs:element name="_GT" type="integerOrNa"/> > <xs:element name="_R3" type="integerOrNa"/> > <xs:element name="_GU" type="integerOrNa"/> > <xs:element name="_GV" type="integerOrNa"/> > <xs:element name="_GW" type="integerOrNa"/> > <xs:element name="_HA" type="integerOrNa"/> > <xs:element name="_HB" type="integerOrNa"/> > <xs:element name="_HC" type="integerOrNa"/> > <xs:element name="_HD" type="integerOrNa"/> > <xs:element name="_HE" type="integerOrNa"/> > <xs:element name="_HF" type="integerOrNa"/> > <xs:element name="_HG" type="integerOrNa"/> > <xs:element name="_HH" type="integerOrNa"/> > <xs:element name="_HI" type="integerOrNa"/> > <xs:element name="_HJ" type="integerOrNa"/> > <xs:element name="_R4" type="integerOrNa"/> > <xs:element name="_R5" type="integerOrNa"/> > <xs:element name="_R6" type="integerOrNa"/> > <xs:element name="_HL" type="integerOrNa"/> > <xs:element name="_HM" type="integerOrNa"/> > <xs:element name="_R7" type="integerOrNa"/> > <xs:element name="_R8" type="integerOrNa"/> > <xs:element name="_HN" type="integerOrNa"/> > <xs:element name="_R9" type="integerOrNa"/> > <xs:element name="_S0" type="integerOrNa"/> > <xs:element name="_HO" type="integerOrNa"/> > <xs:element name="_1G" type="integerOrNa"/> > <xs:element name="_HP" type="integerOrNa"/> > <xs:element name="_HQ" type="integerOrNa"/> > <xs:element name="_1H" type="integerOrNa"/> > <xs:element name="_1J" type="integerOrNa"/> > <xs:element name="_1K" type="integerOrNa"/> > <xs:element name="_KC" type="integerOrNa"/> > <xs:element name="_KF" type="integerOrNa"/> > <xs:element name="_LO" type="integerOrNa"/> > <xs:element name="_LP" type="integerOrNa"/> > <xs:element name="_LR" type="integerOrNa"/> > <xs:element name="_LS" type="integerOrNa"/> > <xs:element name="_0J" type="integerOrNa"/> > <xs:element name="_LT" type="integerOrNa"/> > <xs:element name="_LV" type="integerOrNa"/> > <xs:element name="_NG" type="integerOrNa"/> > <xs:element name="_NH" type="integerOrNa"/> > <xs:element name="_NJ" type="integerOrNa"/> > <xs:element name="_0K" type="integerOrNa"/> > <xs:element name="_PD" type="integerOrNa"/> > <xs:element name="_PH" type="integerOrNa"/> > <xs:element name="_QV" type="integerOrNa"/> > <xs:element name="_QW" type="integerOrNa"/> > <xs:element name="_QX" type="integerOrNa"/> > <xs:element name="_SM" type="integerOrNa"/> > <xs:element name="_SP" type="integerOrNa"/> > <xs:element name="_3Z" type="integerOrNa"/> > <xs:element name="_TS" type="integerOrNa"/> > <xs:element name="_TT" type="integerOrNa"/> > <xs:element name="_TU" type="integerOrNa"/> > <xs:element name="_5Z" type="integerOrNa"/> > <xs:element name="_TV" type="integerOrNa"/> > <xs:element name="_TW" type="integerOrNa"/> > <xs:element name="_TX" type="integerOrNa"/> > <xs:element name="_6B" type="integerOrNa"/> > <xs:element name="_6D" type="integerOrNa"/> > <xs:element name="_6H" type="integerOrNa"/> > <xs:element name="_05" type="integerOrNa"/> > <xs:element name="_09" type="integerOrNa"/> > <xs:element name="_6N" type="integerOrNa"/> > <xs:element name="_6P" type="integerOrNa"/> > <xs:element name="_6R" type="integerOrNa"/> > <xs:element name="_6S" type="integerOrNa"/> > <xs:element name="_6T" type="integerOrNa"/> > <xs:element name="_6U" type="integerOrNa"/> > <xs:element name="_6V" type="integerOrNa"/> > <xs:element name="_6W" type="integerOrNa"/> > <xs:element name="_6X" type="integerOrNa"/> > <xs:element name="_6Y" type="integerOrNa"/> > <xs:element name="_6Z" type="integerOrNa"/> > <xs:element name="_7A" type="integerOrNa"/> > <xs:element name="_7B" type="integerOrNa"/> > <xs:element name="_TY" type="integerOrNa"/> > <xs:element name="_TZ" type="integerOrNa"/> > <xs:element name="_UA" type="integerOrNa"/> > <xs:element name="_7C" type="integerOrNa"/> > <xs:element name="_UB" type="integerOrNa"/> > <xs:element name="_UC" type="integerOrNa"/> > <xs:element name="_UD" type="integerOrNa"/> > <xs:element name="_UL" type="integerOrNa"/> > <xs:element name="_UP" type="integerOrNa"/> > <xs:element name="_UT" type="integerOrNa"/> > <xs:element name="_VA" type="integerOrNa"/> > <xs:element name="_UX" type="integerOrNa"/> > <xs:element name="_UU" type="integerOrNa"/> > <xs:element name="_UY" type="integerOrNa"/> > <xs:element name="_UZ" type="integerOrNa"/> > <xs:element name="_VM" type="integerOrNa"/> > <xs:element name="_VB" type="integerOrNa"/> > <xs:element name="_VN" type="integerOrNa"/> > <xs:element name="_VP" type="integerOrNa"/> > <xs:element name="_VC" type="integerOrNa"/> > <xs:element name="_VR" type="integerOrNa"/> > <xs:element name="_VS" type="integerOrNa"/> > <xs:element name="_VT" type="integerOrNa"/> > <xs:element name="_7Y" type="integerOrNa"/> > <xs:element name="_7Y2" type="integerOrNa"/> > <xs:element name="_7Z" type="integerOrNa"/> > <xs:element name="_7Z2" type="integerOrNa"/> > <xs:element name="_VG1" type="integerOrNa"/> > <xs:element name="_VG2" type="integerOrNa"/> > <xs:element name="_VH1" type="integerOrNa"/> > <xs:element name="_VH2" type="integerOrNa"/> > <xs:element name="_8A1" type="integerOrNa"/> > <xs:element name="_8A2" type="integerOrNa"/> > <xs:element name="_8B" type="integerOrNa"/> > <xs:element name="_8C" type="integerOrNa"/> > <xs:element name="_8D" type="integerOrNa"/> > <xs:element name="_8E" type="integerOrNa"/> > <xs:element name="_VW" type="integerOrNa"/> > <xs:element name="_VX" type="integerOrNa"/> > <xs:element name="_VQ" type="integerOrNa"/> > <xs:element name="_8J" type="integerOrNa"/> > <xs:element name="_VI" type="integerOrNa"/> > <xs:element name="_8K" type="integerOrNa"/> > <xs:element name="_SZ" type="integerOrNa"/> > <xs:element name="_8L" type="integerOrNa"/> > <xs:element name="_VY" type="integerOrNa"/> > <xs:element name="_VJ" type="integerOrNa"/> > <xs:element name="_VK" type="integerOrNa"/> > <xs:element name="_ZE" type="integerOrNa"/> > <xs:element name="_YQ" type="integerOrNa"/> > <xs:element name="_YR" type="integerOrNa"/> > <xs:element name="_YS" type="integerOrNa"/> > <xs:element name="_YT" type="integerOrNa"/> > <xs:element name="_XQ" type="integerOrNa"/> > <xs:element name="_YU" type="integerOrNa"/> > <xs:element name="_SS" type="integerOrNa"/> > <xs:element name="_YV" type="integerOrNa"/> > <xs:element name="_ST" type="integerOrNa"/> > <xs:element name="_ZJ" type="integerOrNa"/> > <xs:element name="_YY" type="integerOrNa"/> > <xs:element name="_YZ" type="integerOrNa"/> > <xs:element name="DIRIGEANT_SECTION" type="dirigeantSection"/> > <xs:element name="ADMINISTRATEUR_SECTION" type="administrateurSection"/> > <xs:element name="_SHARBVDIND" type="indicatorType"/> > </xs:sequence> > <xs:attribute use="required" type="siretType" name="siretNumber"></xs:attribute> > <xs:attribute use="required" type="xs:date" name="closingDate"></xs:attribute> > </xs:complexType> > > <xs:complexType name="transferedDataType"> > <xs:sequence minOccurs="0" maxOccurs="unbounded"> > <xs:element name="RECORD" type="recordType"></xs:element> > </xs:sequence> > </xs:complexType> > > <xs:element type="transferedDataType" name="TRANSFERED_DATA"></xs:element> > > </xs:schema> > > |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
loki a écrit :
> surtout pas TxmlDocument ! pour 100Mo uniquement Sax ... Oui j'étais en train de regarder SAX sur sourceforge justement. > regarde sur torry.net le composant Alcinoe (TalXmlDocument) ... ou sur sourceforge. > ca tiens dans une seule unité. C'est un composant qui fonctionne comme le > TXMLDocument (meme propriété) mais qui te permet de faire du sax, c'est donc simple > et pratique ![]() > > sinon y a pierre y qui à fait un truc aussi je pense Ben l'est où Pierrot ? Tu l'as fait fuir je crois .... > a++ > stephane > |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
essaye ca :
http://sourceforge.net/projects/alcinoe/ y a une demo benchmark en plus ![]() a++ stephane "FOST©" <exe@dll.com> wrote in message news:fp1s0u$968$1@sd-6836.dedibox.fr... > loki a écrit : >> surtout pas TxmlDocument ! pour 100Mo uniquement Sax ... > > Oui j'étais en train de regarder SAX sur sourceforge justement. > >> regarde sur torry.net le composant Alcinoe (TalXmlDocument) ... ou sur sourceforge. >> ca tiens dans une seule unité. C'est un composant qui fonctionne comme le >> TXMLDocument (meme propriété) mais qui te permet de faire du sax, c'est donc simple >> et pratique ![]() >> >> sinon y a pierre y qui à fait un truc aussi je pense > > Ben l'est où Pierrot ? Tu l'as fait fuir je crois .... > >> a++ >> stephane >> |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
FOST© a utilisé son clavier pour écrire :
> loki a écrit : >> surtout pas TxmlDocument ! pour 100Mo uniquement Sax ... > > Oui j'étais en train de regarder SAX sur sourceforge justement. > >> regarde sur torry.net le composant Alcinoe (TalXmlDocument) ... ou sur >> sourceforge. >> ca tiens dans une seule unité. C'est un composant qui fonctionne comme le >> TXMLDocument (meme propriété) mais qui te permet de faire du sax, c'est >> donc simple et pratique ![]() >> >> sinon y a pierre y qui à fait un truc aussi je pense > > Ben l'est où Pierrot ? Tu l'as fait fuir je crois .... PrYXMLReader tu veux dire, LE parser XML de ouf qui tue sa mère ? LE parser HTML compatible HTML mal formé ? LE Parser X[HT]ML qui va bientôt supporter les sélecteurs CSS 3 si quelqu'un le demande ? :-) -- Pierre Y. |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Pierre Y. a écrit :
> PrYXMLReader tu veux dire, LE parser XML de ouf qui tue sa mère ? LE > parser HTML compatible HTML mal formé ? LE Parser X[HT]ML qui va bientôt > supporter les sélecteurs CSS 3 si quelqu'un le demande ? > > :-) C'est-y pas wonderful mon ami ?... Mais où c'est-y qu'on le trouve le PrYXMLReader two thousand height ?... |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
FOST© a exprimé avec précision :
> Pierre Y. a écrit : >> PrYXMLReader tu veux dire, LE parser XML de ouf qui tue sa mère ? LE parser >> HTML compatible HTML mal formé ? LE Parser X[HT]ML qui va bientôt supporter >> les sélecteurs CSS 3 si quelqu'un le demande ? >> >> :-) > > C'est-y pas wonderful mon ami ?... Mais où c'est-y qu'on le trouve le > PrYXMLReader two thousand height ?... Je t'ai fait un paquet cadeau :-) http://www.levosgien.net/files/PrYXML_1.2.zip J'espère que tu vas t'en sortir avec, c'est pas que c'est complexe à utiliser mais ca *peut* être déroutant. Celui de loki (mode on se jette des fleurs) est un drop-in replacement pour le TDOMDocument de Dephi/Microsoft et les autres. Commence par essayer de lire ton fichier avec TDocument D := TDocument.Create; D.ParseFile('Fichier.xml'); D.Root.... Ca dépend de ce que tu veux faire. Par exemple je l'ai utilisé avec Troops pour extraire les formulaires HTML (D.Select['form'] -> NodeList contenant les noeuds <form ...> ... </form> Ca donne ça (OnRequestDone d'un THTTPCli ICS) : procedure TRepeatForm.InfoFormDone(Sender: TObject; RqType : THttpRequest; ErrCode : Word); var i: Integer; NbForms: Integer; Forms: TNodeList; F: TFileStream; begin THTTPCli(Sender).RcvdStream.Seek(0,0); F := TFileStream.Create('tmp.html', fmCreate); F.Write(THTTPCli(Sender).RcvdStream, THTTPCli(Sender).RcvdStream.Size); F.Free; try FCurrentPage.Free; FCurrentPage := TDocument.Create; FCurrentPage.HTMLCompatible := true; FCurrentPage.ParseStream(THTTPCli(Sender).RcvdStre am); Forms := FCurrentPage.Select['form']; NbForms := Forms.Count; for i := 1 to NbForms do ComboBox2.AddItem('Form #' + IntToStr(i), nil); Combobox2.ItemIndex := 0; ComboBox2.OnChange(ComboBox2); StaticText2.Visible := false; ComboBox1.Enabled := true; ComboBox2.Enabled := true; SpeedButton1.Enabled := true; finally Button2.Enabled := True; THTTPCli(Sender).RcvdStream.Free; THTTPCli(Sender).Free; end; end; Faut voir ce dont tu as besoin. J'envisage sérieusement l'implémentation des sélecteurs CSS3, bien plus puissants que XPath et plus marrant aussi pour faire un Parser de Microformats (voir WikiPedia) @+ -- Pierre Y. |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
> Celui de loki (mode on se jette des fleurs) est un drop-in replacement
> pour le TDOMDocument de Dephi/Microsoft et les autres. au fait j'ai essayé de faire une comparaison a l'equope et c'etait plus ou moins kif kif les stats si je me souvient bien ? il a evolué ton composant depuis ? oui le mien c'est tu replaces tes TXmlDocument par TALXmlDocument et c'est tout ... simple et facile ! > procedure TRepeatForm.InfoFormDone(Sender: TObject; RqType : > THttpRequest; ErrCode : Word); > var > i: Integer; > > NbForms: Integer; > Forms: TNodeList; > F: TFileStream; > begin > THTTPCli(Sender).RcvdStream.Seek(0,0); > F := TFileStream.Create('tmp.html', fmCreate); > F.Write(THTTPCli(Sender).RcvdStream, > THTTPCli(Sender).RcvdStream.Size); > F.Free; > > try > FCurrentPage.Free; > FCurrentPage := TDocument.Create; > FCurrentPage.HTMLCompatible := true; > FCurrentPage.ParseStream(THTTPCli(Sender).RcvdStre am); > > Forms := FCurrentPage.Select['form']; > NbForms := Forms.Count; > > for i := 1 to NbForms do > ComboBox2.AddItem('Form #' + IntToStr(i), nil); > Combobox2.ItemIndex := 0; > > ComboBox2.OnChange(ComboBox2); > > StaticText2.Visible := false; > ComboBox1.Enabled := true; > ComboBox2.Enabled := true; > SpeedButton1.Enabled := true; > finally > Button2.Enabled := True; > THTTPCli(Sender).RcvdStream.Free; > THTTPCli(Sender).Free; > end; > end; > ca me surprend un peu ...ca fonctionne bien avec par exemple du codes javacript au millieu ou des commentaires ? a++ Stephane |
|
|
|
#9 |
|
Messages: n/a
Hébergeur: |
loki avait prétendu :
>> Celui de loki (mode on se jette des fleurs) est un drop-in replacement >> pour le TDOMDocument de Dephi/Microsoft et les autres. > > au fait j'ai essayé de faire une comparaison a l'equope et c'etait plus > ou moins kif kif les stats si je me souvient bien ? il a evolué ton composant > depuis ? <provoc> Tu rigoles ? :-) </provoc> > oui le mien c'est tu replaces tes TXmlDocument par TALXmlDocument et c'est > tout ... simple et facile ! Voilà, c'est ce que je disais. > ca me surprend un peu ...ca fonctionne bien avec par exemple du codes > javacript au millieu ou des commentaires ? Y'a plutôt intérêt ;-) -- Pierre Y. |
|
|
|
#10 |
|
Messages: n/a
Hébergeur: |
Pierre Y. a écrit :
> FOST© a exprimé avec précision : >> Pierre Y. a écrit : >>> PrYXMLReader tu veux dire, LE parser XML de ouf qui tue sa mère ? LE >>> parser HTML compatible HTML mal formé ? LE Parser X[HT]ML qui va >>> bientôt supporter les sélecteurs CSS 3 si quelqu'un le demande ? >>> >>> :-) >> >> C'est-y pas wonderful mon ami ?... Mais où c'est-y qu'on le trouve le >> PrYXMLReader two thousand height ?... > > Je t'ai fait un paquet cadeau :-) manque PrYString :-( > http://www.levosgien.net/files/PrYXML_1.2.zip |
|
|
|
#11 |
|
Messages: n/a
Hébergeur: |
ta pas une demo toute bete de ton parser qui parse un fichier xml en mode sax ? je fais vite un test !
"Pierre Y." <pierre.y@gmail.com> wrote in message news:mn.74637d8296e3468d.63766@gmail.com... > loki avait prétendu : >>> Celui de loki (mode on se jette des fleurs) est un drop-in replacement >>> pour le TDOMDocument de Dephi/Microsoft et les autres. >> >> au fait j'ai essayé de faire une comparaison a l'equope et c'etait plus >> ou moins kif kif les stats si je me souvient bien ? il a evolué ton composant >> depuis ? > > <provoc> > Tu rigoles ? :-) > </provoc> > >> oui le mien c'est tu replaces tes TXmlDocument par TALXmlDocument et c'est >> tout ... simple et facile ! > > Voilà, c'est ce que je disais. > >> ca me surprend un peu ...ca fonctionne bien avec par exemple du codes >> javacript au millieu ou des commentaires ? > > Y'a plutôt intérêt ;-) > > -- > Pierre Y. > > |
|
|
|
#12 |
|
Messages: n/a
Hébergeur: |
FOST© avait prétendu :
> Pierre Y. a écrit : >> FOST© a exprimé avec précision : >>> Pierre Y. a écrit : >>>> PrYXMLReader tu veux dire, LE parser XML de ouf qui tue sa mère ? LE >>>> parser HTML compatible HTML mal formé ? LE Parser X[HT]ML qui va bientôt >>>> supporter les sélecteurs CSS 3 si quelqu'un le demande ? >>>> >>>> :-) >>> >>> C'est-y pas wonderful mon ami ?... Mais où c'est-y qu'on le trouve le >>> PrYXMLReader two thousand height ?... >> >> Je t'ai fait un paquet cadeau :-) > > manque PrYString :-( > > >> http://www.levosgien.net/files/PrYXML_1.2.zip Désolé. J'ai mis le bouzin à jour. Tu peux retélécharger le zip. -- Pierre Y. |
|
|
|
#13 |
|
Messages: n/a
Hébergeur: |
Pierre Y. avait prétendu :
> Désolé. J'ai mis le bouzin à jour. Tu peux retélécharger le zip. T'as pas une idée ou une piste pour mon problème (2 threads juste avant le thread du siècle) |
|
|
|
#14 |
|
Messages: n/a
Hébergeur: |
> ta pas une demo toute bete de ton parser qui parse un fichier xml en mode sax
> ? je fais vite un test ! Commencons par le structure.rdf.u8.gz de DMOZ : http://rdf.dmoz.org/rdf/ -- Pierre Y. |
|
|
|
#15 |
|
Messages: n/a
Hébergeur: |
FOST© a formulé la demande :
> Je vais devoir récupérer les infos d'un fichier XML pouvant être assez gros > (100 mo et plus), et qui répondra au xsd ci-joint. Quelle est la bonne > méthode pour digérer tout ça de façon efficace (rapide j'entends). > TXMLDocument ?? Sax ? Autre ?... J'ai mis à jour le bouzin là : http://www.levosgien.net/files/PrYXML_1.3.zip Dedans il y a : - PrYXMLReader (Mode Evenementiel et DOM) et ses dépendances - PrYXSLTransformer (et ses dépendances, en l'occurrence une version patchée de MSXML_2.TLB que j'ai renommé MSXML_4.TLB puisqu'elle est liée à la version 4 de MSXML Parser) - XMLCursor (de feu XMLComponents, patchée aussi parceque j'avais besoin de quelques fonctionnalités supplémentaires) - Un petit projet "Bench" et quelques fichiers de test, sur les gros fichiers ( > 1 ou 2Mo) je vous déconseille l'option "verbeux" car la mise à jour du TMemo avec quelques centaines de milliers de lignes est.. comment dire... lente) Changements par rapports à la version 1.2 : # J'ai un paquet complet qui regroupe à peu près tout ce que j'utilise de XML # J'ai mis à jour TPrYXMLEventReader dans lequel j'avais oublié de brancher l'évènement OnCDATA Voilà, si vous trouvez des bugs, utilisez celui de Loki ou faites un effort pour me les remonter (pierre.y@gmail.com par exemple, ou pierre<STRIP_THAT>@levosgien.net) @+ -- Pierre Y. |
|
|
|
#16 |
|
Messages: n/a
Hébergeur: |
Pierre Y. a utilisé son clavier pour écrire :
> FOST© a formulé la demande : >> Je vais devoir récupérer les infos d'un fichier XML pouvant être assez gros >> (100 mo et plus), et qui répondra au xsd ci-joint. Quelle est la bonne >> méthode pour digérer tout ça de façon efficace (rapide j'entends). >> TXMLDocument ?? Sax ? Autre ?... > > J'ai mis à jour le bouzin là : > > http://www.levosgien.net/files/PrYXML_1.3.zip > > Dedans il y a : > - PrYXMLReader (Mode Evenementiel et DOM) et ses dépendances > - PrYXSLTransformer (et ses dépendances, en l'occurrence une version patchée > de MSXML_2.TLB que j'ai renommé MSXML_4.TLB puisqu'elle est liée > à la version 4 de MSXML Parser) > - XMLCursor (de feu XMLComponents, patchée aussi parceque j'avais besoin de > quelques fonctionnalités supplémentaires) > - Un petit projet "Bench" et quelques fichiers de test, sur les gros fichiers > ( > 1 ou 2Mo) je vous déconseille l'option "verbeux" car la mise à jour du > TMemo avec quelques centaines de milliers de lignes est.. comment dire... > lente) > > > Changements par rapports à la version 1.2 : > # J'ai un paquet complet qui regroupe à peu près tout ce que j'utilise de XML > # J'ai mis à jour TPrYXMLEventReader dans lequel j'avais oublié de brancher > l'évènement OnCDATA > > Voilà, si vous trouvez des bugs, utilisez celui de Loki ou faites un effort > pour me les remonter (pierre.y@gmail.com par exemple, ou > pierre<STRIP_THAT>@levosgien.net) > > @+ Ah j'oubliais, le fichier structure de dmoz que j'utilise pour mes tests il est là aussi (48Mo 7zip -> 630 Mo) : http://www.levosgien.net/files/dmoz-structure.rdf.7z @+ -- Pierre Y. |
|
|
|
#17 |
|
Messages: n/a
Hébergeur: |
Pierre Y. avait soumis l'idée : >> ta pas une demo toute bete de ton parser qui parse un fichier xml en mode >> sax ? je fais vite un test ! > > Commencons par |