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.Xml.dll> #using <System.dll> using namespace System; using namespace System::Collections; using namespace System::IO; using namespace System::Xml; using namespace System::Xml::Xsl; using namespace System::Xml::Schema; public ref 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 ); } // XmlSchemaObjectGenerator int main() { XmlTextReader^ tr = gcnew XmlTextReader( "empty.xsd" ); XmlSchema^ schema = XmlSchema::Read( tr, gcnew ValidationEventHandler( XmlSchemaObjectGenerator::ValidationCallback ) ); schema->ElementFormDefault = XmlSchemaForm::Qualified; schema->TargetNamespace = "http://www.example.com/Report"; { XmlSchemaElement^ element = gcnew XmlSchemaElement; element->Name = "purchaseReport"; XmlSchemaComplexType^ element_complexType = gcnew XmlSchemaComplexType; XmlSchemaSequence^ element_complexType_sequence = gcnew XmlSchemaSequence; { XmlSchemaElement^ element_complexType_sequence_element = gcnew XmlSchemaElement; element_complexType_sequence_element->Name = "region"; element_complexType_sequence_element->SchemaTypeName = gcnew XmlQualifiedName( "String*","http://www.w3.org/2001/XMLSchema" ); { XmlSchemaKeyref^ element_complexType_sequence_element_keyref = gcnew XmlSchemaKeyref; element_complexType_sequence_element_keyref->Name = "dummy2"; element_complexType_sequence_element_keyref->Selector = gcnew XmlSchemaXPath; element_complexType_sequence_element_keyref->Selector->XPath = "r:zip/r:part"; { XmlSchemaXPath^ field = gcnew XmlSchemaXPath; field->XPath = "@number"; element_complexType_sequence_element_keyref->Fields->Add( field ); } element_complexType_sequence_element_keyref->Refer = gcnew 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 = gcnew XmlSchemaAttribute; element_complexType_attribute->Name = "periodEnding"; element_complexType_attribute->SchemaTypeName = gcnew XmlQualifiedName( "date","http://www.w3.org/2001/XMLSchema" ); element_complexType->Attributes->Add( element_complexType_attribute ); } element->SchemaType = element_complexType; { XmlSchemaKey^ element_key = gcnew XmlSchemaKey; element_key->Name = "pNumKey"; element_key->Selector = gcnew XmlSchemaXPath; element_key->Selector->XPath = "r:parts/r:part"; { XmlSchemaXPath^ field = gcnew XmlSchemaXPath; field->XPath = "@number"; element_key->Fields->Add( field ); } element->Constraints->Add( element_key ); } schema->Items->Add( element ); } schema->Write( Console::Out ); return 0; } // main };
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.


