[VB.NET / XML] inlezen van "defecte" XML (namespaces)

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 01-10 07:55

Atmoz

Techno!!

Topicstarter
Hoi allemaal,

Graag zou ik een XML bestand inlezen met daarin namespaces.
Dat is -zo blijkt- voor mij sowieso al een lastige taak, want met namespaces heb ik nog nooit gewerkt.
Normaliter lees ik een XML gewoon in met behulp van een XMLreader of X(ml)Document, maar na enkele dagen prutsen lukt het me nog steeds niet. Tijd om wat hulp in te schakelen :9

Het probleem is alleen maar groter geworden omdat ik er zojuist achter kom dat de (namespace) URL's in de header van de XML niet meer werken. Er stond een *.xsd file in, maar deze is niet meer bereikbaar. Ook stonden er wat xmlns: tags, maar deze heb ik er maar uit gehaald omdat die URL's allemaal niet meer bereikbaar zijn.

edit:


Als ik de XML in IE open, en krijg ik alleen een wit/leeg scherm.
En in Chrome komt er:

Afbeeldingslocatie: http://lumatronix.nl/Atmoz/Fout_.png



Ik gebruik voor het (testen van het) inlezen VB.NET 2010 of 2015.
Daarbij heb ik al vele test-procedures/codes van diverse websites geprobeerd:

http://stackoverflow.com/...d-parsing-through-the-xml

http://stackoverflow.com/...le-with-namespaces-vb-net

http://stackoverflow.com/...ngs-depending-on-namespac

Maar steeds krijg ik de foutmelding dat ":" niet mag in de naam van een veldje.

Hoe ga ik dit aanpakken? Vooral omdat die XML in feite "defect" is, zal het een lastige klus worden :|

Wie geeft me een duw in de juiste richting? _/-\o_
...

[ Voor 6% gewijzigd door Atmoz op 22-03-2016 13:59 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Heb je het originele bestand nog? Want vooralsnog lijkt het er voornamelijk op dat je zelf het bestand gesloopt hebt door maar wat weg te halen en andere dingen weer niet weg te halen.

Als je nou gewoon de namespaces declareert, dan zou je het bestand gewoon moeten kunnen inlezen.

Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 01-10 07:55

Atmoz

Techno!!

Topicstarter
Gomez12 schreef op dinsdag 22 maart 2016 @ 14:39:
Heb je het originele bestand nog? Want vooralsnog lijkt het er voornamelijk op dat je zelf het bestand gesloopt hebt door maar wat weg te halen en andere dingen weer niet weg te halen.

Als je nou gewoon de namespaces declareert, dan zou je het bestand gewoon moeten kunnen inlezen.
Ja, dat heb ik nog, maar de links (uit die "xmlns:" velden) werken echt niet meer (zijn HTTP links naar een extern adres waar ik een soort 404 op krijg).

De XSD heb ik wel nog, maar ook daar wordt verwijzen naar niet-meer-bestaande HTTP links....

Kan ik dan toch nog iets ermee denk je?

Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Heb je de DTD/Entity resolver uit gezet?

[ Voor 10% gewijzigd door DJMaze op 22-03-2016 15:30 ]

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Een XML-namespace-URI hoeft geen geldige HTTP-respons te geven wanneer bezocht met een browser.

Het zou handig zijn als je wat relevante XML en code zou kunnen laten zien.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 01-10 07:55

Atmoz

Techno!!

Topicstarter
DJMaze schreef op dinsdag 22 maart 2016 @ 15:30:
Heb je de DTD/Entity resolver uit gezet?
Uhmmm :?
Eens effe kijken waar ik dat kan vinden...

In Chrome of IE bedoel je?
Of moet dat in VB.NET iets zijn?
CodeCaster schreef op dinsdag 22 maart 2016 @ 15:32:
Een XML-namespace-URI hoeft geen geldige HTTP-respons te geven wanneer bezocht met een browser.

Het zou handig zijn als je wat relevante XML en code zou kunnen laten zien.
Hmz, ok :)

Tja, hieronder dan de XML zoals ik hem nu heb zonder bovenin (wordt dat ook header genoemd bij XML's?) die URL's / "xmlns:" spul...
<?xml version="1.0" encoding="UTF-8"?>
<xb:aw>
<xb:prden>
<prd_ABC:ABC-prd>
<pbx_ABC:plaats><pbx_ABC:gerelateerdeAdressen><pbx_ABC:hoofdadres><pbx_ABC:ids>2277117</pbx_ABC:ids></pbx_ABC:hoofdadres></pbx_ABC:gerelateerdeAdressen><pbx_ABC:ids>3333020000000332</pbx_ABC:ids><pbx_ABC:aanduidingRecordInactief>N</pbx_ABC:aanduidingRecordInactief><pbx_ABC:aanduidingRecordCorrectie>0</pbx_ABC:aanduidingRecordCorrectie><pbx_ABC:officieel>N</pbx_ABC:officieel><pbx_ABC:plaatsStatus>Plaats aangewezen</pbx_ABC:plaatsStatus><pbx_ABC:plaatsGeometrie><gml:Polygon srsName="urn:ogc:def:crs:Epbx::21112">
<gml:exterior>
<gml:LinearRing>
<gml:posList srsDimension="4" count="12">1111 0.0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon></pbx_ABC:plaatsGeometrie><pbx_ABC:tijdvakgeldigheid><pbxtype:begindatumTijdvakGeldigheid>2011101700000000</pbxtype:begindatumTijdvakGeldigheid></pbx_ABC:tijdvakgeldigheid><pbx_ABC:inOnderzoek>N</pbx_ABC:inOnderzoek><pbx_ABC:bron><pbxtype:documentdatum>20151013</pbxtype:documentdatum><pbxtype:documentnummer>2011/24114</pbxtype:documentnummer></pbx_ABC:bron></pbx_ABC:plaats>
<pbx_ABC:plaats><pbx_ABC:gerelateerdeAdressen><pbx_ABC:hoofdadres><pbx_ABC:ids>0477117</pbx_ABC:ids></pbx_ABC:hoofdadres></pbx_ABC:gerelateerdeAdressen><pbx_ABC:ids>0411020000000332</pbx_ABC:ids><pbx_ABC:aanduidingRecordInactief>N</pbx_ABC:aanduidingRecordInactief><pbx_ABC:aanduidingRecordCorrectie>0</pbx_ABC:aanduidingRecordCorrectie><pbx_ABC:officieel>N</pbx_ABC:officieel><pbx_ABC:plaatsStatus>Plaats aangewezen</pbx_ABC:plaatsStatus><pbx_ABC:plaatsGeometrie><gml:Polygon srsName="urn:ogc:def:crs:Epbx::21112">
<gml:exterior>
<gml:LinearRing>
<gml:posList srsDimension="4" count="12">1111 0.0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon></pbx_ABC:plaatsGeometrie><pbx_ABC:tijdvakgeldigheid><pbxtype:begindatumTijdvakGeldigheid>2011101700000000</pbxtype:begindatumTijdvakGeldigheid></pbx_ABC:tijdvakgeldigheid><pbx_ABC:inOnderzoek>N</pbx_ABC:inOnderzoek><pbx_ABC:bron><pbxtype:documentdatum>20151013</pbxtype:documentdatum><pbxtype:documentnummer>2011/24114</pbxtype:documentnummer></pbx_ABC:bron></pbx_ABC:plaats><pbx_ABC:plaats><pbx_ABC:gerelateerdeAdressen><pbx_ABC:hoofdadres><pbx_ABC:ids>0477117</pbx_ABC:ids></pbx_ABC:hoofdadres></pbx_ABC:gerelateerdeAdressen><pbx_ABC:ids>0444420000000332</pbx_ABC:ids><pbx_ABC:aanduidingRecordInactief>N</pbx_ABC:aanduidingRecordInactief><pbx_ABC:aanduidingRecordCorrectie>0</pbx_ABC:aanduidingRecordCorrectie><pbx_ABC:officieel>N</pbx_ABC:officieel><pbx_ABC:plaatsStatus>Plaats aangewezen</pbx_ABC:plaatsStatus><pbx_ABC:plaatsGeometrie><gml:Polygon srsName="urn:ogc:def:crs:Epbx::21112">
<gml:exterior>
<gml:LinearRing>
<gml:posList srsDimension="4" count="12">1111 0.0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon></pbx_ABC:plaatsGeometrie><pbx_ABC:tijdvakgeldigheid><pbxtype:begindatumTijdvakGeldigheid>2011101700000000</pbxtype:begindatumTijdvakGeldigheid></pbx_ABC:tijdvakgeldigheid><pbx_ABC:inOnderzoek>N</pbx_ABC:inOnderzoek><pbx_ABC:bron><pbxtype:documentdatum>20151013</pbxtype:documentdatum><pbxtype:documentnummer>2011/24114</pbxtype:documentnummer></pbx_ABC:bron></pbx_ABC:plaats></prd_ABC:ABC-prd></xb:prden>
</xb:aw>

Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
DJMaze schreef op dinsdag 22 maart 2016 @ 15:30:
Heb je de DTD/Entity resolver uit gezet?
atmoz schreef op dinsdag 22 maart 2016 @ 15:37:
Uhmmm :?
Eens effe kijken waar ik dat kan vinden...
XmlResolver = null;

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 01-10 07:55

Atmoz

Techno!!

Topicstarter
We zijn inmiddels meer dan een half jaar verder, en het lukt nog steeds niet.
Ook op mijn vraag voor hulp in V&A krijg ik 0 response.

Is het dan inderdaad zo moeilijk? Ik zou zeggen een of andere slimmerik weet toch altijd wel iets te verzinnen waardoor een XML (of dat nu met, zonder of met defecte namespaces is) uit te lezen is...

Waar kan ik het nog meer zoeken?

Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Je kan toch gewoon alle xmlns er uit slopen.

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • robvanu
  • Registratie: Augustus 2015
  • Laatst online: 18-09 00:21
Je had de xmlns: attributes er niet uit moeten gooien, dat is waar hij namelijk een foutmelding over geeft nu.
Je verwijst namelijk naar een namespace (dat is wat er voor de : staat), maar de declaratie van de namespace (xmlns: attributes) heb je eruit gesloopt.

Je geeft aan dat je die xmlns: attributes eruit hebt gesloopt omdat de URL's niet meer bereikbaar zijn, maar (zoals al gezegd) hoeft dat ook niet. Dus de reden waarom je het eruit gesloopt hebt is ongeldig eigenlijk.

Gaat het ook dan nog fout?

[ Voor 27% gewijzigd door robvanu op 26-10-2016 14:55 ]


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Wat is de huidige situatie? Heb je nu een geldig bestand, of heb je enkel nog maar je gesloopte bestand?

Want als je enkel nog maar het gesloopte bestand hebt zou ik het 1 stap verder slopen en of alle : vervangen door underscores zodat je gewijzigde namen hebt, of met een regex alles voor de : eruit slopen.

Als je nog een geldig bestand hebt dan gewoon verwerken :)

Acties:
  • +1 Henk 'm!

  • Montaner
  • Registratie: Januari 2005
  • Laatst online: 10-10 13:14
atmoz schreef op woensdag 26 oktober 2016 @ 14:34:
We zijn inmiddels meer dan een half jaar verder, en het lukt nog steeds niet.
Ook op mijn vraag voor hulp in V&A krijg ik 0 response.

Is het dan inderdaad zo moeilijk? Ik zou zeggen een of andere slimmerik weet toch altijd wel iets te verzinnen waardoor een XML (of dat nu met, zonder of met defecte namespaces is) uit te lezen is...

Waar kan ik het nog meer zoeken?
Waarom doe je niet gewoon wat hier wordt gevraagd? Post de XML met XMLNS tags. Zoals al aangegeven; dit hoeven geen geldige adressen te zijn.

En anders sloop je de namespaces ook uit de tags:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?xml version="1.0" encoding="UTF-8"?>
<aw>
    <prden>
        <ABC-prd>
            <plaats>
                <gerelateerdeAdressen>
                    <hoofdadres>
                        <ids>2277117</ids>
                    </hoofdadres>
                </gerelateerdeAdressen>
                <ids>3333020000000332</ids>
                <aanduidingRecordInactief>N</aanduidingRecordInactief>
                <aanduidingRecordCorrectie>0</aanduidingRecordCorrectie>
                <officieel>N</officieel>
                <plaatsStatus>Plaats aangewezen</plaatsStatus>
                <plaatsGeometrie>
                    <Polygon srsName="urn:ogc:def:crs:Epbx::21112">
                        <exterior>
                            <LinearRing>
                                <posList srsDimension="4" count="12">1111 0.0</posList>
                            </LinearRing>
                        </exterior>
                    </Polygon>
                </plaatsGeometrie>
                <tijdvakgeldigheid>
                    <begindatumTijdvakGeldigheid>2011101700000000</begindatumTijdvakGeldigheid>
                </tijdvakgeldigheid>
                <inOnderzoek>N</inOnderzoek>
                <bron>
                    <documentdatum>20151013</documentdatum>
                    <documentnummer>2011/24114</documentnummer>
                </bron>
            </plaats>
            <plaats>
                <gerelateerdeAdressen>
                    <hoofdadres>
                        <ids>0477117</ids>
                    </hoofdadres>
                </gerelateerdeAdressen>
                <ids>0411020000000332</ids>
                <aanduidingRecordInactief>N</aanduidingRecordInactief>
                <aanduidingRecordCorrectie>0</aanduidingRecordCorrectie>
                <officieel>N</officieel>
                <plaatsStatus>Plaats aangewezen</plaatsStatus>
                <plaatsGeometrie>
                    <Polygon srsName="urn:ogc:def:crs:Epbx::21112">
                        <exterior>
                            <LinearRing>
                                <posList srsDimension="4" count="12">1111 0.0</posList>
                            </LinearRing>
                        </exterior>
                    </Polygon>
                </plaatsGeometrie>
                <tijdvakgeldigheid>
                    <begindatumTijdvakGeldigheid>2011101700000000</begindatumTijdvakGeldigheid>
                </tijdvakgeldigheid>
                <inOnderzoek>N</inOnderzoek>
                <bron>
                    <documentdatum>20151013</documentdatum>
                    <documentnummer>2011/24114</documentnummer>
                </bron>
            </plaats>
            <plaats>
                <gerelateerdeAdressen>
                    <hoofdadres>
                        <ids>0477117</ids>
                    </hoofdadres>
                </gerelateerdeAdressen>
                <ids>0444420000000332</ids>
                <aanduidingRecordInactief>N</aanduidingRecordInactief>
                <aanduidingRecordCorrectie>0</aanduidingRecordCorrectie>
                <officieel>N</officieel>
                <plaatsStatus>Plaats aangewezen</plaatsStatus>
                <plaatsGeometrie>
                    <Polygon srsName="urn:ogc:def:crs:Epbx::21112">
                        <exterior>
                            <LinearRing>
                                <posList srsDimension="4" count="12">1111 0.0</posList>
                            </LinearRing>
                        </exterior>
                    </Polygon>
                </plaatsGeometrie>
                <tijdvakgeldigheid>
                    <begindatumTijdvakGeldigheid>2011101700000000</begindatumTijdvakGeldigheid>
                </tijdvakgeldigheid>
                <inOnderzoek>N</inOnderzoek>
                <bron>
                    <documentdatum>20151013</documentdatum>
                    <documentnummer>2011/24114</documentnummer>
                </bron>
            </plaats>
        </ABC-prd>
    </prden>
</aw>

[ Voor 70% gewijzigd door Montaner op 27-10-2016 09:00 ]

Pagina: 1