XmlSchemaKeyref Class
This class represents the keyref element from XMLSchema as specified by the World Wide Web Consortium (W3C).
Assembly: System.Xml (in System.Xml.dll)
System.Xml.Schema.XmlSchemaObject
System.Xml.Schema.XmlSchemaAnnotated
System.Xml.Schema.XmlSchemaIdentityConstraint
System.Xml.Schema.XmlSchemaKeyref
| Name | Description | |
|---|---|---|
![]() | XmlSchemaKeyref() | Initializes a new instance of the XmlSchemaKeyref class. |
| Name | Description | |
|---|---|---|
![]() | Annotation | Gets or sets the annotation property.(Inherited from XmlSchemaAnnotated.) |
![]() | Fields | Gets the collection of fields that apply as children for the XML Path Language (XPath) expression selector.(Inherited from XmlSchemaIdentityConstraint.) |
![]() | Id | Gets or sets the string id.(Inherited from XmlSchemaAnnotated.) |
![]() | LineNumber | Gets or sets the line number in the file to which the schema element refers.(Inherited from XmlSchemaObject.) |
![]() | LinePosition | Gets or sets the line position in the file to which the schema element refers.(Inherited from XmlSchemaObject.) |
![]() | Name | Gets or sets the name of the identity constraint.(Inherited from XmlSchemaIdentityConstraint.) |
![]() | Namespaces | Gets or sets the XmlSerializerNamespaces to use with this schema object.(Inherited from XmlSchemaObject.) |
![]() | Parent | Gets or sets the parent of this XmlSchemaObject.(Inherited from XmlSchemaObject.) |
![]() | QualifiedName | Gets the qualified name of the identity constraint, which holds the post-compilation value of the QualifiedName property.(Inherited from XmlSchemaIdentityConstraint.) |
![]() | Refer | Gets or sets the name of the key that this constraint refers to in another simple or complex type. |
![]() | Selector | Gets or sets the XPath expression selector element.(Inherited from XmlSchemaIdentityConstraint.) |
![]() | SourceUri | Gets or sets the source location for the file that loaded the schema.(Inherited from XmlSchemaObject.) |
![]() | UnhandledAttributes | Gets or sets the qualified attributes that do not belong to the current schema's target namespace.(Inherited from XmlSchemaAnnotated.) |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | MemberwiseClone() | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
Specifies that an attribute or element value (or set of values) has a correspondence with those of the specified key or unique element. The constraint name must be unique within a schema.
The following example creates a key element.
using System; using System.Collections; using System.IO; using System.Xml; using System.Xml.Xsl; using System.Xml.Schema; public class XmlSchemaObjectGenerator { private static void ValidationCallback(object sender, ValidationEventArgs args ){ if(args.Severity == XmlSeverityType.Warning) Console.Write("WARNING: "); else if(args.Severity == XmlSeverityType.Error) Console.Write("ERROR: "); Console.WriteLine(args.Message); } public static void Main() { XmlTextReader tr = new XmlTextReader("empty.xsd"); XmlSchema schema = XmlSchema.Read(tr, new ValidationEventHandler(ValidationCallback)); schema.ElementFormDefault = XmlSchemaForm.Qualified; schema.TargetNamespace = "http://www.example.com/Report"; { XmlSchemaElement element = new XmlSchemaElement(); element.Name = "purchaseReport"; XmlSchemaComplexType element_complexType = new XmlSchemaComplexType(); XmlSchemaSequence element_complexType_sequence = new XmlSchemaSequence(); { XmlSchemaElement element_complexType_sequence_element = new XmlSchemaElement(); element_complexType_sequence_element.Name = "region"; element_complexType_sequence_element.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema") ; { XmlSchemaKeyref element_complexType_sequence_element_keyref = new XmlSchemaKeyref(); element_complexType_sequence_element_keyref.Name = "dummy2"; element_complexType_sequence_element_keyref.Selector = new XmlSchemaXPath(); element_complexType_sequence_element_keyref.Selector.XPath = "r:zip/r:part"; { XmlSchemaXPath field = new XmlSchemaXPath(); field.XPath = "@number"; element_complexType_sequence_element_keyref.Fields.Add(field); } element_complexType_sequence_element_keyref.Refer = new XmlQualifiedName("pNumKey", "http://www.example.com/Report") ; element_complexType_sequence_element.Constraints.Add(element_complexType_sequence_element_keyref); } element_complexType_sequence.Items.Add(element_complexType_sequence_element); } element_complexType.Particle = element_complexType_sequence; { XmlSchemaAttribute element_complexType_attribute = new XmlSchemaAttribute(); element_complexType_attribute.Name = "periodEnding"; element_complexType_attribute.SchemaTypeName = new XmlQualifiedName("date", "http://www.w3.org/2001/XMLSchema") ; element_complexType.Attributes.Add(element_complexType_attribute); } element.SchemaType = element_complexType; { XmlSchemaKey element_key = new XmlSchemaKey(); element_key.Name = "pNumKey"; element_key.Selector = new XmlSchemaXPath(); element_key.Selector.XPath = "r:parts/r:part"; { XmlSchemaXPath field = new XmlSchemaXPath(); field.XPath = "@number"; element_key.Fields.Add(field); } element.Constraints.Add(element_key); } schema.Items.Add(element); } schema.Write(Console.Out); }/* Main() */ } //XmlSchemaObjectGenerator
The following XML file is generated for the preceding code example.
<?xml version="1.0" encoding="IBM437"?> <xs:schema xmlns:r="http://www.example.com/Report" elementFormDefault="qualified" targetNamespace="http://www.example.com/Report" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="purchaseReport"> <xs:complexType> <xs:sequence> <xs:element name="region" type="xs:string"> <xs:keyref name="dummy2" refer="r:pNumKey"> <xs:selector xpath="r:zip/r:part" /> <xs:field xpath="@number" /> </xs:keyref> </xs:element> </xs:sequence> <xs:attribute name="periodEnding" type="xs:date" /> </xs:complexType> <xs:key name="pNumKey"> <xs:selector xpath="r:parts/r:part" /> <xs:field xpath="@number" /> </xs:key> </xs:element> </xs:schema>
Available since 1.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.


