Il linguaggio Visual Basic di Microsoft
 

[VB6] ******* xml

Carmelo 25 Mar 2015 15:18
Mi hanno chiesto di fare un programmino per creare il ******* xml per la
fattura elettronica.
Ho scaricato l'esempio del ******* xml, non dovrebbe essere difficile fare
un ******* di testo con tab e tag

è il ******* schema xsd per la lunghezza dei campi che non riesco a capire.

Esempio:
<xsd:simpleType name="MessageId_Type">
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
<xsd:maxLength value="14"/>
</xsd:restriction>
Questo dovrebbe essere un campo stringa di 14 caratteri

================
<xsd:element type="xsd:positiveInteger" name="PosizioneFattura"
maxOccurs="1" minOccurs="0"/>
Ma questo che significa che devo mettere 0 se non è valorizzato?

Carmelo
Stefano Ferrari 25 Mar 2015 15:38
Il 25/03/2015 15:18, Carmelo ha scritto:
> Mi hanno chiesto di fare un programmino per creare il ******* xml per la
> fattura elettronica.
> Ho scaricato l'esempio del ******* xml, non dovrebbe essere difficile fare
> un ******* di testo con tab e tag

già i tab li lascerei perdere :-)

> Esempio:
> <xsd:simpleType name="MessageId_Type">
> <xsd:restriction base="xsd:string">
> <xsd:minLength value="1"/>
> <xsd:maxLength value="14"/>
> </xsd:restriction>
> Questo dovrebbe essere un campo stringa di 14 caratteri

questo contiene una stringa con lunghezza minima 1 carattere e lunghezza
massima 14

>
> ================
> <xsd:element type="xsd:positiveInteger" name="PosizioneFattura"
> maxOccurs="1" minOccurs="0"/>
> Ma questo che significa che devo mettere 0 se non è valorizzato?

che "PosizioneFattura" può essere indicato 0 o al massimo 1 volta e deve
contenere un intero positivo.
Però mi sembra che questi facciano parte dello schema dei messaggi di
ritorno e no della fattura che tu invii.

ciao
stefano
Luca D 25 Mar 2015 15:42
Il giorno mercoledì 25 marzo 2015 15:18:34 UTC+1, Carmelo ha scritto:
> <xsd:element type="xsd:positiveInteger" name="PosizioneFattura"
> maxOccurs="1" minOccurs="0"/>
> Ma questo che significa che devo mettere 0 se non è valorizzato?
>

Vuol dire che è un elemento opzionale; può comparire al massimo una volta, ma
se non è valiorizzato può essere omesso del tutto (nel senso che puoi evitare
anche di scrivere il tag <PosizioneFattura></PosizioneFattura>)

Per inciso, questa è una di quelle cose per cui varrebbe la pena prendere il
primo VB.NET Express che capita, e scrivere una piccola class library per
l'occasione, che puoi referenziare poi nel tuo programma VB6...
Questo tipo di cose qui in .NET si scrivono praticamente da sole: gli dai in
pasto il ******* XSD, ti genera una classe preconfezionata (ma modificabile a
piacimento), e con due righe di codice si *****izzi da oggetto in memoria a
******* XML.
Carmelo 25 Mar 2015 16:43
Il 25/03/2015 15:42, Luca D ha scritto:
> Il giorno mercoledì 25 marzo 2015 15:18:34 UTC+1, Carmelo ha scritto:
>> <xsd:element type="xsd:positiveInteger" name="PosizioneFattura"
>> maxOccurs="1" minOccurs="0"/>
>> Ma questo che significa che devo mettere 0 se non è valorizzato?
>>
>
> Vuol dire che è un elemento opzionale; può comparire al massimo una volta,
ma se non è valiorizzato può essere omesso del tutto (nel senso che puoi
evitare anche di scrivere il tag <PosizioneFattura></PosizioneFattura>)
>
> Per inciso, questa è una di quelle cose per cui varrebbe la pena prendere il
primo VB.NET Express che capita, e scrivere una piccola class library per
l'occasione, che puoi referenziare poi nel tuo programma VB6...
> Questo tipo di cose qui in .NET si scrivono praticamente da sole: gli dai in
pasto il ******* XSD, ti genera una classe preconfezionata (ma modificabile a
piacimento), e con due righe di codice si *****izzi da oggetto in memoria a
******* XML.
>
Io ho il vb2008 ma non so come fare.
Ho aperto un progetto librerie di classi e ora?

Carmelo
Greg 25 Mar 2015 16:45
Il 25/03/15 15:42:58 Luca D ha scritto:
> Il giorno mercoledì 25 marzo 2015 15:18:34 UTC+1, Carmelo ha scritto:
>> <xsd:element type="xsd:positiveInteger" name="PosizioneFattura"
>> maxOccurs="1" minOccurs="0"/>
>> Ma questo che significa che devo mettere 0 se non è valorizzato?
>>

> Vuol dire che è un elemento opzionale; può comparire al massimo una volta,
ma
> se non è valiorizzato può essere omesso del tutto (nel senso che puoi
evitare
> anche di scrivere il tag <PosizioneFattura></PosizioneFattura>)

> Per inciso, questa è una di quelle cose per cui varrebbe la pena prendere il
> primo VB.NET Express che capita, e scrivere una piccola class library per
> l'occasione, che puoi referenziare poi nel tuo programma VB6... Questo tipo
> di cose qui in .NET si scrivono praticamente da sole: gli dai in pasto il
> ******* XSD, ti genera una classe preconfezionata (ma modificabile a
> piacimento), e con due righe di codice si *****izzi da oggetto in memoria a
> ******* XML.

Ma non c'è un editor visuale per fare questi files e poi darli in pasto
al vb6, un po come si faceva con crystal report

--
Greg
Luca D 25 Mar 2015 18:44
On Wednesday, March 25, 2015 at 4:43:58 PM UTC+1, Carmelo wrote:
> Il 25/03/2015 15:42, Luca D ha scritto:
>> Il giorno mercoledì 25 marzo 2015 15:18:34 UTC+1, Carmelo ha scritto:
>>> <xsd:element type="xsd:positiveInteger" name="PosizioneFattura"
>>> maxOccurs="1" minOccurs="0"/>
>>> Ma questo che significa che devo mettere 0 se non è valorizzato?
>>>
>>
>> Vuol dire che è un elemento opzionale; può comparire al massimo una volta,
ma se non è valiorizzato può essere omesso del tutto (nel senso che puoi
evitare anche di scrivere il tag <PosizioneFattura></PosizioneFattura>)
>>
>> Per inciso, questa è una di quelle cose per cui varrebbe la pena prendere
il primo VB.NET Express che capita, e scrivere una piccola class library per
l'occasione, che puoi referenziare poi nel tuo programma VB6...
>> Questo tipo di cose qui in .NET si scrivono praticamente da sole: gli dai in
pasto il ******* XSD, ti genera una classe preconfezionata (ma modificabile a
piacimento), e con due righe di codice si *****izzi da oggetto in memoria a
******* XML.
>>
> Io ho il vb2008 ma non so come fare.
> Ho aperto un progetto librerie di classi e ora?
>
> Carmelo

L'intero procedimento non è b*****e cosi' in due parole, comunque detto molto
sinteticamente:

- Nelle opzioni del progetto, 'Assembly information', marca la voce 'Make
assemmbly COM visible' e in 'Compile' marca 'Register for COM interop'

- Dal prompt dei comandi di Visual Stu***** esegui
"xsd <il tuo ******* .xsd /c /l:vb"
dal quale otterrai <il tuo ******* .vb con l'equivalente, sotto forma di classi
VB, di tutti gli oggetti descritti nello schema

- Includi quel ******* nel progetto e compila

A questo punto, la libreria e le relative classi dovrebbero essere registrate e
utilizzabili nei 'Riferimenti' di un progetto VB6... chiaramente, a seconda dei
tipi di dato contenuti nel XSD, potrebbe essere necessario adattarle per
compatibilità a VB, aggiungere attributi per pilotare la *****izzazione, così
come creare altre classi di supporto e via dicendo.

Per ottenere il ******* XML risultante (di nuovo, la sto facendo molto corta, ma
la sostanza è questa), è sufficente popolare dal codice VB6 l'oggetto con i
dati necessari e richiamare un metodo, da definire in una delle tue classi .NET,
simile a

Sub SaveAsXML(ByVal obj As Object, ByVal fileName As String)
Dim objStreamWriter As New IO.StreamWriter(fileName)
Dim x As New Xml*****izer(obj.GetType)
x.*****ize(objStreamWriter, obj)
objStreamWriter.Close()
End Sub

e ottieni l'intera struttura dei tag XML e i relativi dati senza bisogno di
altro
febo@delenda.net 2 Apr 2015 16:15
Il 25/03/2015 16:45, Greg ha scritto:

> Ma non c'è un editor visuale per fare questi files e poi darli in pasto
> al vb6, un po come si faceva con crystal report
>

Guarda, ti consiglio di studiarti l'interoperabilità .NET/COM e di fare
il pezzo di generazione utilizzando gli assembly .net per l'xml in C#.

Su VB6 ci sono i vecchi parser XML microsoft ma rispetto a .net c'è la
sono attrezzi primitivi.

febo@delenda.net
--
I'm Boethius, author of the Consolation of Philosophy. It's my belief
that history is a wheel. "Inconsistency is my very essence" -says the
wheel- "Rise up on my spokes if you like, but don't complain when you
are cast back down into the depths. Good times pass away, but then so do
the bad. Mutability is our tragedy, but it is also our hope. The worst
of times, like the best, are always passing away".
http://delendanet.blogspot.com

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio Visual Basic di Microsoft | Tutti i gruppi | it.comp.lang.visual-basic | Notizie e discussioni visual basic | Visual basic Mobile | Servizio di consultazione news.