public class XmlSchemaKeyref : XmlSchemaIdentityConstraint
|
using System;
using System.Collections;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.Schema;
public class XmlSchemaObjectGenerator {
public 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>
| ctor #1 | Default constructor. This constructor is called by derived class constructors to initialize state in this type. |
| Annotation (inherited from System.Xml.Schema.XmlSchemaAnnotated) |
Read-write See base class member description: System.Xml.Schema.XmlSchemaAnnotated.Annotation Gets or sets the annotation property. |
| Fields (inherited from System.Xml.Schema.XmlSchemaIdentityConstraint) |
Read-only See base class member description: System.Xml.Schema.XmlSchemaIdentityConstraint.Fields Gets the collection of fields that apply as children for the XML Path Language (XPath) expression selector. |
| Id (inherited from System.Xml.Schema.XmlSchemaAnnotated) |
Read-write See base class member description: System.Xml.Schema.XmlSchemaAnnotated.Id Gets or sets the string id. |
| LineNumber (inherited from System.Xml.Schema.XmlSchemaObject) |
Read-write See base class member description: System.Xml.Schema.XmlSchemaObject.LineNumber Gets or sets the line number in the file to which the schema element refers. |
| LinePosition (inherited from System.Xml.Schema.XmlSchemaObject) |
Read-write See base class member description: System.Xml.Schema.XmlSchemaObject.LinePosition Gets or sets the line position in the file to which the schema element refers. |
| Name (inherited from System.Xml.Schema.XmlSchemaIdentityConstraint) |
Read-write See base class member description: System.Xml.Schema.XmlSchemaIdentityConstraint.Name Gets or sets the name of the identity constraint. |
| Namespaces (inherited from System.Xml.Schema.XmlSchemaObject) |
Read-write See base class member description: System.Xml.Schema.XmlSchemaObject.Namespaces |
| QualifiedName (inherited from System.Xml.Schema.XmlSchemaIdentityConstraint) |
Read-only See base class member description: System.Xml.Schema.XmlSchemaIdentityConstraint.QualifiedName Gets the qualified name of the identity constraint which holds the post-compilation value of the QualifiedName property. |
| Refer | Read-write Gets or sets the name of the key that this constraint refers to in another simple or complex type. |
| Selector (inherited from System.Xml.Schema.XmlSchemaIdentityConstraint) |
Read-write See base class member description: System.Xml.Schema.XmlSchemaIdentityConstraint.Selector Gets or sets the XML Path Language (XPath) expression selector element. |
| SourceUri (inherited from System.Xml.Schema.XmlSchemaObject) |
Read-write See base class member description: System.Xml.Schema.XmlSchemaObject.SourceUri Gets or sets the source location for the file that loaded the schema. |
| UnhandledAttributes (inherited from System.Xml.Schema.XmlSchemaAnnotated) |
Read-write See base class member description: System.Xml.Schema.XmlSchemaAnnotated.UnhandledAttributes Gets or sets the qualified attributes that do not belong to the schema target namespace. |
| Equals (inherited from System.Object) |
See base class member description: System.Object.Equals Derived from System.Object, the primary base class for all objects. |
| GetHashCode (inherited from System.Object) |
See base class member description: System.Object.GetHashCode Derived from System.Object, the primary base class for all objects. |
| GetType (inherited from System.Object) |
See base class member description: System.Object.GetType Derived from System.Object, the primary base class for all objects. |
| ToString (inherited from System.Object) |
See base class member description: System.Object.ToString Derived from System.Object, the primary base class for all objects. |
| Finalize (inherited from System.Object) |
See base class member description: System.Object.Finalize Derived from System.Object, the primary base class for all objects. |
| MemberwiseClone (inherited from System.Object) |
See base class member description: System.Object.MemberwiseClone Derived from System.Object, the primary base class for all objects. |
Hierarchy:
public XmlSchemaKeyref(); |
public XmlSchemaAnnotation Annotation {get; set;}
|
public XmlSchemaObjectCollection Fields {get;}
|
public string Id {get; set;}
|
Optional.
public int LineNumber {get; set;}
|
public int LinePosition {get; set;}
|
public string Name {get; set;}
|
public XmlSerializerNamespaces Namespaces {get; set;}
|
public XmlQualifiedName QualifiedName {get;}
|
public XmlQualifiedName Refer {get; set;}
|
public XmlSchemaXPath Selector {get; set;}
|
public string SourceUri {get; set;}
|
public XmlAttribute[] UnhandledAttributes {get; set;}
|
~XmlSchemaKeyref(); |
public virtual int GetHashCode(); |
public Type GetType(); |
protected object MemberwiseClone(); |
public virtual string ToString(); |