SoapAttributeAttribute.DataType Eigenschaft

Definition

Ruft den XSD (XML Schema Definition)-Datentyp des von XmlSerializer generierten SOAP-Attributs ab oder legt diesen fest.Gets or sets the XML Schema definition language (XSD) data type of the SOAP attribute generated by the XmlSerializer.

public:
 property System::String ^ DataType { System::String ^ get(); void set(System::String ^ value); };
public string DataType { get; set; }
member this.DataType : string with get, set
Public Property DataType As String

Eigenschaftswert

String

Ein XML-Schema Datentyp.An XML Schema data type.

Ausnahmen

Der angegebene XML-Schemadatentyp kann dem .NET-Datentyp nicht zugeordnet werden.The XML Schema data type you have specified cannot be mapped to the .NET data type.

Beispiele

Im folgenden Beispiel wird eine Klasse serialisiert, die mehrere Felder enthält, auf die ein SoapAttributeAttribute angewendet wird.The following example serializes a class that contains several fields to which a SoapAttributeAttribute is applied. Die DataType -Eigenschaft wird für die GroupNumber Felder und festgelegt Today .The DataType property is set for the GroupNumber and the Today fields.

#using <System.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Xml;
using namespace System::Xml::Serialization;
using namespace System::Xml::Schema;

//using namespace System::Runtime::Remoting::Metadata;
public ref class Vehicle
{
public:
   String^ licenseNumber;
};


[SoapInclude(Vehicle::typeid)]
public ref class Group
{
public:

   [SoapAttributeAttribute(Namespace="http://www.cpandl.com")]
   String^ GroupName;

   [SoapAttributeAttribute(DataType="base64Binary")]
   array<Byte>^GroupNumber;

   [SoapAttributeAttribute(DataType="date",AttributeName="CreationDate")]
   DateTime Today;

   [SoapElement(DataType="nonNegativeInteger",ElementName="PosInt")]
   String^ PostitiveInt;
   Vehicle^ GroupVehicle;
};

public ref class Run
{
public:
   void SerializeObject( String^ filename )
   {
      // Create an instance of the XmlSerializer class that
      // can generate encoded SOAP messages.
      XmlSerializer^ mySerializer = ReturnSOAPSerializer();
      Group^ myGroup = MakeGroup();

      // Writing the file requires a TextWriter.
      XmlTextWriter^ writer = gcnew XmlTextWriter( filename,Encoding::UTF8 );
      writer->Formatting = Formatting::Indented;
      writer->WriteStartElement( "wrapper" );

      // Serialize the class, and close the TextWriter.
      mySerializer->Serialize( writer, myGroup );
      writer->WriteEndElement();
      writer->Close();
   }


private:
   Group^ MakeGroup()
   {
      // Create an instance of the class that will be serialized.
      Group^ myGroup = gcnew Group;

      // Set the Object* properties.
      myGroup->GroupName = ".NET";
      array<Byte>^hexByte = {Convert::ToByte( 100 ),Convert::ToByte( 50 )};
      myGroup->GroupNumber = hexByte;
      DateTime myDate = DateTime(2002,5,2);
      myGroup->Today = myDate;
      myGroup->PostitiveInt = "10000";
      myGroup->GroupVehicle = gcnew Vehicle;
      myGroup->GroupVehicle->licenseNumber = "1234";
      return myGroup;
   }

public:
   void DeserializeObject( String^ filename )
   {
      // Create an instance of the XmlSerializer class that
      // can generate encoded SOAP messages.
      XmlSerializer^ mySerializer = ReturnSOAPSerializer();

      // Reading the file requires an  XmlTextReader.
      XmlTextReader^ reader = gcnew XmlTextReader( filename );
      reader->ReadStartElement( "wrapper" );

      // Deserialize and cast the Object*.
      Group^ myGroup;
      myGroup = safe_cast<Group^>(mySerializer->Deserialize( reader ));
      reader->ReadEndElement();
      reader->Close();
   }

private:
   XmlSerializer^ ReturnSOAPSerializer()
   {
      
      // Create an instance of the XmlSerializer class.
      XmlTypeMapping^ myMapping = (gcnew SoapReflectionImporter)->ImportTypeMapping( Group::typeid );
      return gcnew XmlSerializer( myMapping );
   }
};

int main()
{
   Run^ test = gcnew Run;
   test->SerializeObject( "SoapAtts.xml" );
   test->DeserializeObject( "SoapAtts.xml" );
}
using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using System.Xml.Schema;

[SoapInclude(typeof(Vehicle))]
public class Group
{
   [SoapAttribute (Namespace = "http://www.cpandl.com")]
   public string GroupName;

   [SoapAttribute(DataType = "base64Binary")]
   public Byte [] GroupNumber;

   [SoapAttribute(DataType = "date", AttributeName = "CreationDate")]
   public DateTime Today;
   [SoapElement(DataType = "nonNegativeInteger", ElementName = "PosInt")]
   public string PostitiveInt;

   public Vehicle GroupVehicle;
}

public class Vehicle
{
   public string licenseNumber;
}

public class Run
{
   public static void Main()
   {
      Run test = new Run();
      test.SerializeObject("SoapAtts.xml");
      test.DeserializeObject("SoapAtts.xml");
   }
   public void SerializeObject(string filename)
   {
      // Create an instance of the XmlSerializer class that
      // can generate encoded SOAP messages.
      XmlSerializer mySerializer =  ReturnSOAPSerializer();

      Group myGroup=MakeGroup();
      // Writing the file requires a TextWriter.
      XmlTextWriter writer =
      new XmlTextWriter(filename, Encoding.UTF8);
      writer.Formatting = Formatting.Indented;
      writer.WriteStartElement("wrapper");
      // Serialize the class, and close the TextWriter.
      mySerializer.Serialize(writer, myGroup);
      writer.WriteEndElement();
      writer.Close();
   }

   private Group MakeGroup(){
      // Create an instance of the class that will be serialized.
      Group myGroup = new Group();

      // Set the object properties.
      myGroup.GroupName = ".NET";

      Byte [] hexByte = new Byte[2]{Convert.ToByte(100),
      Convert.ToByte(50)};
      myGroup.GroupNumber = hexByte;

      DateTime myDate = new DateTime(2002,5,2);
      myGroup.Today = myDate;
      myGroup.PostitiveInt= "10000";
      myGroup.GroupVehicle = new Vehicle();
      myGroup.GroupVehicle.licenseNumber="1234";
      return myGroup;
   }   	

   public void DeserializeObject(string filename)
   {
      // Create an instance of the XmlSerializer class that
      // can generate encoded SOAP messages.
      XmlSerializer mySerializer =  ReturnSOAPSerializer();

      // Reading the file requires an  XmlTextReader.
      XmlTextReader reader=
      new XmlTextReader(filename);
      reader.ReadStartElement("wrapper");

      // Deserialize and cast the object.
      Group myGroup;
      myGroup = (Group) mySerializer.Deserialize(reader);
      reader.ReadEndElement();
      reader.Close();
   }

   private XmlSerializer ReturnSOAPSerializer(){
      // Create an instance of the XmlSerializer class.
      XmlTypeMapping myMapping =
      (new SoapReflectionImporter().ImportTypeMapping
      (typeof(Group)));
       return new XmlSerializer(myMapping);
   }
}
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Serialization
Imports System.Xml.Schema

<SoapInclude(GetType(Vehicle))> _
Public Class Group

   <SoapAttribute (Namespace:= "http:'www.cpandl.com")> _
   Public GroupName As String    
   <SoapAttribute(DataType:= "base64Binary")> _
   Public GroupNumber() As  Byte 

   <SoapAttribute(DataType:= "date", AttributeName:= "CreationDate")> _
   Public Today As DateTime 
   <SoapElement(DataType:= "nonNegativeInteger", _
   ElementName:= "PosInt")> _
   Public PostitiveInt As String 

   Public GroupVehicle As Vehicle 
End Class
  
Public Class Vehicle
   Public licenseNumber As String 
End Class

Public Class Run

   Shared Sub Main()
   
      Dim test As Run = New Run()
      test.SerializeObject("SoapAtts.xml")
      test.DeserializeObject("SoapAtts.xml")
   End Sub
   
   Public Sub SerializeObject(filename As String)
   
      ' Create an instance of the XmlSerializer Class that
      ' can generate encoded SOAP messages.
      Dim mySerializer As XmlSerializer  =  ReturnSOAPSerializer()

      Dim myGroup As Group = MakeGroup()
      ' Writing the file requires a TextWriter.
      Dim writer As XmlTextWriter = _
      New XmlTextWriter(filename, Encoding.UTF8)
      writer.Formatting = Formatting.Indented
      writer.WriteStartElement("wrapper")
      ' Serialize the Class, and close the TextWriter.
      mySerializer.Serialize(writer, myGroup)
      writer.WriteEndElement()
      writer.Close()
   End Sub

   Private Function MakeGroup() As Group 
      ' Create an instance of the Class that will be serialized.
      Dim myGroup As Group = New Group()

      ' Set the object properties.
      myGroup.GroupName = ".NET"

      Dim hexByte() As Byte= New Byte(1){Convert.ToByte(100), _
      Convert.ToByte(50)}
      myGroup.GroupNumber = hexByte

      Dim myDate As DateTime = New DateTime(2002,5,2)
      myGroup.Today = myDate
      myGroup.PostitiveInt= "10000"
      myGroup.GroupVehicle = New Vehicle()
      myGroup.GroupVehicle.licenseNumber="1234"
      return myGroup
   End Function   	

   Public Sub DeserializeObject(filename As String)
      ' Create an instance of the XmlSerializer Class that
      ' can generate encoded SOAP messages.
      Dim mySerializer As XmlSerializer =  ReturnSOAPSerializer()

      ' Reading the file requires an  XmlTextReader.
      Dim reader As XmlTextReader = _
      New XmlTextReader(filename)
      reader.ReadStartElement("wrapper")

      ' Deserialize and cast the object.
      Dim myGroup As Group 
      myGroup = _
      CType(mySerializer.Deserialize(reader), Group)
      reader.ReadEndElement()
      reader.Close()

   End Sub
   
   private Function ReturnSOAPSerializer() As XmlSerializer 
      ' Create an instance of the XmlSerializer Class.
      Dim myMapping As XmlTypeMapping = _
      (New SoapReflectionImporter().ImportTypeMapping _
      (GetType(Group)))
       return New XmlSerializer(myMapping)
   End Function
End Class

Hinweise

In der folgenden Tabelle sind die einfachen XML-Schema Datentypen mit their.NET-Entsprechungen aufgelistet.The following table lists the XML Schema simple data types with their.NET equivalents.

Verwenden Sie für das XML base64Binary -Schema und die hexBinary Datentypen ein Array von Byte -Strukturen, und wenden Sie ein-Array SoapAttributeAttribute mit dem DataType auf "base64Binary" oder "hexBinary" festgelegten nach Bedarf an.For the XML Schema base64Binary and hexBinary data types, use an array of Byte structures, and apply a SoapAttributeAttribute with the DataType set to "base64Binary" or "hexBinary", as appropriate. Verwenden Sie für das XML time -Schema und die date Datentypen den DateTime -Typ, und wenden SoapAttributeAttribute Sie das mit dem DataType Satz auf "Date" oder "Time" an.For the XML Schema time and date data types, use the DateTime type and apply the SoapAttributeAttribute with the DataType set to "date" or "time".

Wenden Sie für jeden XML-Schema Datentyp, der einer Zeichenfolge zugeordnet ist, den SoapAttributeAttribute mit dessen- DataType Eigenschaft auf den Datentyp des XML-Schemas an.For every XML Schema data type that is mapped to a string, apply the SoapAttributeAttribute with its DataType property set to the XML Schema data type. Beachten Sie, dass hierdurch nicht das Serialisierungsformat geändert wird, sondern nur das Schema für den Member.Note that this does not change the serialization format, only the schema for the member.

Hinweis

Bei der-Eigenschaft wird die Groß-/Kleinschreibung beachtet, sodass Sie Sie genau auf einen der XML-Schema Datentypen festlegen müssen.The property is case-sensitive, so you must set it exactly to one of the XML Schema data types.

Hinweis

Das übergeben von Binärdaten als XML-Element ist effizienter und übergibt es dann als XML-Attribut.Passing binary data as an XML element is more efficient then passing it as an XML attribute.

Weitere Informationen zu XML-Schema Datentypen finden Sie im Dokument "World Wide Consortium" mit dem Namen XML Schema Part 2: Datatypes] ( https://www.w3.org/TR/xmlschema-2/) .For more information about XML Schema data types, see the World Wide Consortium document named XML Schema Part 2: Datatypes](https://www.w3.org/TR/xmlschema-2/).

XSD-DatentypXSD data type .NET-Datentyp.NET data type
anyURIanyURI String
base64Binarybase64Binary Array von Byte-ObjektenArray of Byte objects
booleanboolean Boolean
bytebyte SByte
datedate DateTime
dateTimedateTime DateTime
Decimaldecimal Decimal
doubledouble Double
ENTITYENTITY String
KleinstunternehmenENTITIES String
floatfloat Single
gDaygDay String
gMonthgMonth String
gMonthDaygMonthDay String
gYeargYear String
gYearMonthgYearMonth String
hexBinaryhexBinary Array von Byte-ObjektenArray of Byte objects
idID String
IDREFIDREF String
IDREFSIDREFS String
INTint Int32
integerinteger String
languagelanguage String
longlong Int64
nameName String
NCNameNCName String
negativeIntegernegativeInteger String
NMTOKENNMTOKEN String
NMTOKENSNMTOKENS String
normalizedStringnormalizedString String
nonNegativeIntegernonNegativeInteger String
nonPositiveIntegernonPositiveInteger String
NOTATIONNOTATION String
positiveIntegerpositiveInteger String
QNameQName XmlQualifiedName
durationduration String
Zeichenfolgestring String
shortshort Int16
timetime DateTime
tokentoken String
unsignedByteunsignedByte Byte
unsignedIntunsignedInt UInt32
unsignedLongunsignedLong UInt64
unsignedShortunsignedShort UInt16

Gilt für: