XmlNamespaceDeclarationsAttribute Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee geeft u op dat de doeleigenschap, parameter, retourwaarde of klasselid voorvoegsels bevat die zijn gekoppeld aan naamruimten die worden gebruikt in een XML-document.
public ref class XmlNamespaceDeclarationsAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue, AllowMultiple=false)]
public class XmlNamespaceDeclarationsAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue)]
public class XmlNamespaceDeclarationsAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue, AllowMultiple=false)>]
type XmlNamespaceDeclarationsAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue)>]
type XmlNamespaceDeclarationsAttribute = class
inherit Attribute
Public Class XmlNamespaceDeclarationsAttribute
Inherits Attribute
- Overname
- Kenmerken
Opmerkingen
Het XmlNamespaceDeclarationsAttribute kenmerk kan slechts eenmaal in een klasse worden toegepast op een veld of eigenschap die een XmlSerializerNamespaces object retourneert.
Hiermee XmlNamespaceDeclarationsAttribute kunt u de voorvoegsels en de bijbehorende naamruimten opslaan die worden gebruikt in een XML-document. Een veelvoorkomend gebruik van het kenmerk is bijvoorbeeld het opslaan van XPath-gegevens, omdat dit wordt gedefinieerd door het World Wide Web Consortium-document met de naam XML Language (XPath) versie 1.0. Kortom, een XPath is een tekenreeks die veel naamruimtevoorvoegsels en lokale namen bevat, samen met een andere syntaxis.
Met de XPath-taal kunt u een voorvoegsel koppelen aan een pad en het voorvoegsel in het XML-document gebruiken. Het volgende XML-document met de naam 'select' bevat bijvoorbeeld een voorvoegsel (cal) dat is gekoppeld aan een specifieke URI (http://www.cohowinery.com/calendar/). Het element bevat een kenmerk met de naam 'pad' dat het XPath bevat.
<select xmlns:cal ="http://www.cohowinery.com/calendar/" path="cal:appointments/@startTime" />
Het schema hiervoor kan het volgende zijn:
<element name="select">
<complexType>
<simpleContent>
<attribute name="path" />
</simpleContent>
</complexType>
</element>
Zonder de XmlNamespaceDeclarationsAttributenaamruimte gaat de koppeling tussen het voorvoegsel en de naamruimte verloren.
Als u de koppeling tussen het voorvoegsel en de naamruimte-URI wilt behouden, voegt u een lid toe dat een XmlSerializerNamespaces-object retourneert en past u het kenmerk XmlNamespaceDeclarationsAttribute toe op het lid, zoals wordt weergegeven in de volgende C# en Visual Basic code:
// C#
public class Select {
[XmlAttribute] public string path;
[XmlNamespaceDeclarations] public XmlSerializerNamespaces xmlns;
}
' Visual Basic
Public Class Select
<XmlAttribute> Public path As String
<XmlNamespaceDeclarations> Public xmlns As XmlSerializerNamespaces
End Class
Wanneer het schema voor het gegenereerde XML-document wordt geserialiseerd, bevat het XSD-element appinfo(XML Schema Definition). Het element bevat verder een metagegevenselement met de naam keepNamespaceDeclarations, ingesteld op de naam van het lid dat de naamruimtedeclaraties bevat. Het volgende XML-fragment toont het schema:
<xs:element name="select">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<keepNamespaceDeclarations>xmlns</keepNamespaceDeclarations>
</xs:appinfo>
</xs:annotation>
<xs:simpleContent>
<xs:attribute name="path" />
</xs:simpleContent>
</xs:complexType>
</xs:element>
Bij deserialisatie bevat het xmlns veld een XmlSerializerNamespaces object dat alle definities van naamruimtevoorvoegsels bevat.
Bij serialisatie kan de gebruiker met behulp van de Add methode voorvoegsel-naamruimteparen aan het XmlSerializerNamespaces object toevoegen. Dit wordt weergegeven in de volgende C# en Visual Basic code:
// C#
using System;
using System.IO;
using System.Xml.Serialization;
[XmlRoot("select")]
public class Select {
[XmlAttribute]
public string xpath;
[XmlNamespaceDeclarations]
public XmlSerializerNamespaces xmlns;
}
public class Test {
public static void Main(string[] args) {
Select mySelect = new Select();
mySelect.xpath = "myNS:ref/@common:y";
mySelect.xmlns = new XmlSerializerNamespaces();
mySelect.xmlns.Add("MyNS", "myNS.tempuri.org");
mySelect.xmlns.Add("common", "common.tempuri.org");
XmlSerializer ser = new XmlSerializer(typeof(Select));
ser.Serialize(Console.Out, mySelect);
}
}
// Output:
// <?xml version="1.0" encoding="IBM437"?>
// <select xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
// xmlns:common="common.tempuri.org" xmlns:MyNS="myNS.tempuri.org" xpath="myNS:ref/@common:y" />
' Visual Basic
Imports System
Imports System.IO
Imports System.Xml.Serialization
<XmlRoot("select")> _
Public Class SelectPath
<XmlAttribute> _
Public xpath As String
<XmlNamespaceDeclarations> _
public xmlns As XmlSerializerNamespaces
End Class
Public Class Test
Public Shared Sub Main()
Dim mySelect As SelectPath = New SelectPath()
mySelect.xpath = "myNS:ref/@common:y"
mySelect.xmlns = New XmlSerializerNamespaces()
mySelect.xmlns.Add("MyNS", "myNS.tempuri.org")
mySelect.xmlns.Add("common", "common.tempuri.org")
Dim ser As XmlSerializer = New XmlSerializer(mySelect.GetType)
ser.Serialize(Console.Out, mySelect)
End Sub
End Class
'Output:
' <?xml version="1.0" encoding="IBM437"?>
' <select xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
' xmlns:common="common.tempuri.org" xmlns:MyNS="myNS.tempuri.org" xpath="myNS:ref/@common:y" />
Houd er ook rekening mee dat het lid waarop het kenmerk wordt toegepast, alleen de voorvoegselnaamruimteparen bevat die deel uitmaken van het XML-element dat is gedefinieerd door de klasse. In het volgende XML-document wordt bijvoorbeeld alleen het voorvoegselpaar cal vastgelegd, maar niet het voorvoegsel 'x'. Als u deze gegevens wilt ophalen, voegt u een lid toe aan de XmlNamespaceDeclarationsAttribute klasse die het root element vertegenwoordigt.
<?xml version="1.0"?>
<x:root xmlns:x="http://www.cohowinery.com/x/">
<x:select xmlns:cal="http://www.cohowinery.com/calendar/" path="cal:appointments/@cal:startTime" />
</x:root>
Constructors
| Name | Description |
|---|---|
| XmlNamespaceDeclarationsAttribute() |
Initialiseert een nieuw exemplaar van de XmlNamespaceDeclarationsAttribute klasse. |
Eigenschappen
| Name | Description |
|---|---|
| TypeId |
Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id. (Overgenomen van Attribute) |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object. (Overgenomen van Attribute) |
| GetHashCode() |
Retourneert de hash-code voor dit exemplaar. (Overgenomen van Attribute) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| IsDefaultAttribute() |
Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse. (Overgenomen van Attribute) |
| Match(Object) |
Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object. (Overgenomen van Attribute) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's. (Overgenomen van Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen. (Overgenomen van Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1). (Overgenomen van Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven. (Overgenomen van Attribute) |