XmlNamespaceDeclarationsAttribute Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Anger att målegenskapen, parametern, returvärdet eller klassmedlemmen innehåller prefix som är associerade med namnområden som används i ett XML-dokument.
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
- Arv
- Attribut
Kommentarer
Attributet XmlNamespaceDeclarationsAttribute kan bara tillämpas en gång i en klass på ett fält eller en egenskap som returnerar ett XmlSerializerNamespaces objekt.
Gör XmlNamespaceDeclarationsAttribute att du kan lagra prefixen och de associerade namnrymderna som används i ett XML-dokument. En vanlig användning av attributet är till exempel att lagra XPath-data, eftersom det definieras av dokumentet World Wide Web Consortium med namnet XML Language (XPath) version 1.0. I korthet är en XPath en sträng som innehåller många namnområdesprefix och lokala namn, tillsammans med någon annan syntax.
Med XPath-språket kan du associera ett prefix med en sökväg och använda prefixet i XML-dokumentet. Följande XML-dokument med namnet "select" innehåller till exempel ett prefix ("cal") som är associerat med en specifik URI (http://www.cohowinery.com/calendar/). Elementet innehåller ett attribut med namnet "path" som innehåller XPath.
<select xmlns:cal ="http://www.cohowinery.com/calendar/" path="cal:appointments/@startTime" />
Schemat för detta kan vara:
<element name="select">
<complexType>
<simpleContent>
<attribute name="path" />
</simpleContent>
</complexType>
</element>
XmlNamespaceDeclarationsAttributeUtan går associationen mellan prefixet och namnområdet förlorad.
Om du vill behålla associationen mellan prefixet och namnområdes-URI:n lägger du till en medlem som returnerar ett XmlSerializerNamespaces-objekt och tillämpar attributet XmlNamespaceDeclarationsAttribute på medlemmen, enligt följande C# och Visual Basic kod:
// 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
När det serialiseras innehåller schemat för det genererade XML-dokumentet elementet XML Schema definition (XSD) med namnet appinfo. Elementet innehåller ytterligare ett metadataelement med namnet keepNamespaceDeclarations, inställt på namnet på den medlem som innehåller namnområdesdeklarationerna. Följande XML-fragment visar schemat:
<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>
Vid deserialisering innehåller fältet xmlns ett XmlSerializerNamespaces objekt som innehåller alla namnområdesprefixdefinitioner.
Vid serialisering kan användaren lägga till prefix-namespace-par i XmlSerializerNamespaces objektet med hjälp av Add metoden . Detta visas i följande C# och Visual Basic kod:
// 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" />
Observera också att medlemmen som attributet tillämpas på endast innehåller de prefixnamnområdespar som tillhör XML-elementet som definierats av klassen. I följande XML-dokument avbildas till exempel endast prefixparet "cal", men inte prefixet "x". För att hämta dessa data lägger du till en medlem med XmlNamespaceDeclarationsAttribute i klassen som representerar elementet root .
<?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>
Konstruktorer
| Name | Description |
|---|---|
| XmlNamespaceDeclarationsAttribute() |
Initierar en ny instans av XmlNamespaceDeclarationsAttribute klassen. |
Egenskaper
| Name | Description |
|---|---|
| TypeId |
När den implementeras i en härledd klass hämtar du en unik identifierare för den här Attribute. (Ärvd från Attribute) |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Returnerar ett värde som anger om den här instansen är lika med ett angivet objekt. (Ärvd från Attribute) |
| GetHashCode() |
Returnerar hash-koden för den här instansen. (Ärvd från Attribute) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| IsDefaultAttribute() |
När den åsidosättas i en härledd klass anger du om värdet för den här instansen är standardvärdet för den härledda klassen. (Ärvd från Attribute) |
| Match(Object) |
När den åsidosätts i en härledd klass returneras ett värde som anger om den här instansen är lika med ett angivet objekt. (Ärvd från Attribute) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mappar en uppsättning namn till en motsvarande uppsättning av sändningsidentifierare. (Ärvd från Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Hämtar typinformationen för ett objekt, som kan användas för att hämta typinformationen för ett gränssnitt. (Ärvd från Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Hämtar antalet typinformationsgränssnitt som ett objekt tillhandahåller (antingen 0 eller 1). (Ärvd från Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Ger åtkomst till egenskaper och metoder som exponeras av ett objekt. (Ärvd från Attribute) |