Visualizzazione dei risultati da 1 a 3 su 3

Discussione: xmlreader e namespace

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    xmlreader e namespace

    ciao.
    Sto creando un programma per importare vari formati xml tutti ifc(formato architetturale aperto) il problema è che differiscono per il nome dei namespace e altre piccole cose a seconda del sistema cad che esporta : allplan , archicad ecc...
    la mia idea è di creare un xmlreader personalizzato da passare al deserializzatore in modo da uniformare l'xml.
    Chiaramente ho creato tutte le classi di deserializzazione con xsd.exe, è proprio per questo che non voglio toccarlo o cambiare namespaces per avere una deserializzazione uguale e vari xmlreader che adattano l'xml.
    Il problema è sui namespaces tutte le volte che leggo un elemento il reader chiama il localname e in successione il NamespaceURI e mi chiede il namespace in tutti gli elementi per il namespace generico xmlns e la mia deserializzazione non lo vuole quindi esce con un errore.
    Ho letto che si puo utilizzare invece la proprieta name invece di localname che non "chiama" il NmaespaceUri ma non so come fare.

    Ho provato ad eliminare dai settings tutti i namespace ma mi da errore quando cerco di eliminare xmlns, come posso risolvere?
    xmlns alla fine è un attributo ma il mio xmlreader quando trova un elemento chiama in successione il localname da cui inserisco un elemento diverso da quello standard e poi il NamespaceURI.
    alla fine devo cambiare 2 elementi ma è diventato un enigma come eliminare questo xmlns.
    grazie.
    per il moderatore:
    Per errore avevo postato precedentemente la discussione in programmazione la vorrei mantenere qui dato che uso c# e il .net.
    grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    pardon , l'errore è :
    {System.InvalidOperationException: Errore nel documento XML. ---> System.InvalidOperationException: <iso_10303_28 version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:iso.org:standard:10303art(28):version(2):xmlschema:common http://www.iai-tech.org/ifcXML/IFC2x3/FINAL/ex.xsd" xmlns=''>

    non riesco a toglier quel xmlns= e non vorrei dequalificarlo per tutti gli elemnti perchè compare su tutti gli elemnti successivi.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    volevo dare un informazione importante che prima avevo scordato io vorrei sostituire l'elemento root da codice al "volo" semplicemente ritornando un altro elemento sempre dello stesso tipo ma con namespace diversi.
    cosi:
    codice:
    public override string LocalName
            {
                get
                {
    
    
                    switch (NodeType)
                    {
                        case XmlNodeType.Element:
                            if (base.LocalName == "iso_10303_28")
                            {
                                _iso = true;
                                // return "iso_10303_28";
                                return "iso_10303_28 version=\"2.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xsi:schemaLocation=\"urn:iso.org:standard:10303:part(28):version(2):xmlschema:common  http://www.iai-tech.org/ifcXML/IFC2x3/FINAL/ex.xsd\"";
                            }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.