Imports System.Collections.Generic
Imports System.Collections
Imports System.Collections.ObjectModel
Imports System.Reflection
Imports System.Xml.Serialization
Imports System.Xml.Schema
<XmlRoot([Namespace]:="FatturaElettronica")>
<XmlType([Namespace]:="")>
Public Class FatturaElettronica
Public quantity As Integer
FatturaElettronicaHeader = New FatturaElettronicaHeader
Property FatturaElettronicaHeader As FatturaElettronicaHeader
Public Class FatturaElettronicaHeader
DatiTrasmissione = New DatiTrasmissione
Property DatiTrasmissione As DatiTrasmissione
Public Class DatiTrasmissione
Idtrasmittente = New idTrasmittente
ContattiTrasmittente = New ContattiTrasmittente
Property Idtrasmittente As idTrasmittente
Property ProgressivoInvio As String
Private m_FormatoTrasmissione as FormatoTrasmissioneType
Public Property FormatoTrasmissioneSpecified as Boolean
Property FormatoTrasmissione As FormatoTrasmissioneType
Return m_FormatoTrasmissione
FormatoTrasmissioneSpecified = true
m_FormatoTrasmissione = value
Property CodiceDestinatario As String
Property ContattiTrasmittente As ContattiTrasmittente
Public Function ShouldSerializeContattiTrasmittente() as Boolean
Return ContattiTrasmittente.ShouldSerialize()
Property PecDestinatario As String
Public Class idTrasmittente
Property IdPaese As String
Property IdCodice As String
Public Class ContattiTrasmittente
Property Telefono As String
Public Module ContattiTrasmittenteExtensions
<System.Runtime.CompilerServices.Extension()> _
Public Function ShouldSerialize(ByVal ContattiTrasmittente as ContattiTrasmittente) as Boolean
Return ContattiTrasmittente IsNot Nothing And (ContattiTrasmittente.Telefono IsNot Nothing Or ContattiTrasmittente.Email IsNot Nothing)
Public Enum FormatoTrasmissioneType
Dim fattEle As New FatturaElettronica
Dim ns2 As New Xml.Serialization.XmlSerializerNamespaces()
ns2.Add("p", "FatturaElettronica")
Dim xml as String = fattEle.GetXml(ns2)
Console.WriteLine("{0} with FormatoTrasmissione unspecified:", fattEle)
fattEle.FatturaElettronicaHeader.DatiTrasmissione.FormatoTrasmissione = Nothing
Dim xml2 as String = fattEle.GetXml(ns2)
Console.WriteLine("{0} with FormatoTrasmissione specified:", fattEle)
Function GetXml() As String
Dim xml as String = <myvar>
Public Module XmlSerializationHelper
<System.Runtime.CompilerServices.Extension> _
Public Function LoadFromXML(Of T)(xmlString As String) As T
Using reader As New StringReader(xmlString)
Return DirectCast(New XmlSerializer(GetType(T)).Deserialize(reader), T)
<System.Runtime.CompilerServices.Extension> _
Public Function GetXml(Of T)(obj As T, Optional omitStandardNamespaces As Boolean = False) As String
Dim ns As XmlSerializerNamespaces = Nothing
If omitStandardNamespaces Then
ns = New XmlSerializerNamespaces()
<System.Runtime.CompilerServices.Extension> _
Public Function GetXml(Of T)(obj As T, ns as XmlSerializerNamespaces) As String
Using textWriter = New StringWriter()
Dim settings = New XmlWriterSettings() With { _
Using xmlWriter = System.Xml.XmlWriter.Create(textWriter, settings)
Dim serializer as New XmlSerializer(obj.GetType())
serializer.Serialize(xmlWriter, obj, ns)
Return textWriter.ToString()
<System.Runtime.CompilerServices.Extension> _
Public Function GetOuterXml(node as XmlNode, Optional indent as Boolean = true) as String
Using textWriter = New StringWriter()
Dim settings = New XmlWriterSettings() With { _
.OmitXmlDeclaration = true _
Using xmlWriter = System.Xml.XmlWriter.Create(textWriter, settings)
Return textWriter.ToString()