XmlSchema 클래스로 XML 스키마 파일 작성
static void Main(string[] args) { XmlSchema schema = new XmlSchema();
// <xs:element name="book" type="string"/> XmlSchemaElement elem_book = new XmlSchemaElement(); schema.Items.Add(elem_book); elem_book.Name = "book"; elem_book.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="albumn" type="string"/> XmlSchemaElement elem_albumn = new XmlSchemaElement(); schema.Items.Add(elem_albumn); elem_albumn.Name = "albumn"; elem_albumn.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="contents"> XmlSchemaElement elem_contents = new XmlSchemaElement(); schema.Items.Add(elem_contents); elem_contents.Name = "contents";
// <xs:complexType> XmlSchemaComplexType complexType = new XmlSchemaComplexType(); elem_contents.SchemaType = complexType;
// <xs:choice minOccurs="0" maxOccurs="unbounded"> XmlSchemaChoice choice = new XmlSchemaChoice(); complexType.Particle = choice; choice.MinOccurs = 0; choice.MaxOccursString = "unbounded";
// <xs:element ref="book"/> XmlSchemaElement ref_book = new XmlSchemaElement(); choice.Items.Add(ref_book); ref_book.RefName = new XmlQualifiedName("book"); // <xs:element ref="albumn"/> XmlSchemaElement ref_albumn = new XmlSchemaElement(); choice.Items.Add(ref_albumn); ref_albumn.RefName = new XmlQualifiedName("albumn");
XmlSchemaSet schemaSet = new XmlSchemaSet(); schemaSet.ValidationEventHandler += new ValidationEventHandler(ValidationCallbackOne); schemaSet.Add(schema); schemaSet.Compile();
XmlSchema compiledSchema = null; foreach (XmlSchema schema1 in schemaSet.Schemas()) { compiledSchema = schema1; } XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable()); nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema"); FileStream fs = new FileStream("data.xsd",FileMode.Create); compiledSchema.Write(fs); fs.Close(); } public static void ValidationCallbackOne(object sender, ValidationEventArgs args) { Console.WriteLine(args.Message); } |
[소스] XML 스키마 파일 작성 예제 코드
다음은 예제 코드로 만들어진 "data.xsd" 파일의 내용입니다.
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="book" type="xs:string" /> <xs:element name="albumn" type="xs:string" /> <xs:element name="contents"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="book" /> <xs:element ref="albumn" /> </xs:choice> </xs:complexType> </xs:element> </xs:schema> |
[문서 ] data.xsd 문서 내용
'.NET > XML.NET' 카테고리의 다른 글
[XML.NET C# 소스] XmlDocument 클래스로 XML 문서 만들기 (0) | 2016.04.18 |
---|---|
[XML.NET C# 소스] 스키마를 적용하여 XML 문서 내용 읽어오기 (0) | 2016.04.18 |
[XML.NET C# 소스] XmlReader 클래스의 ReadOuterXml 메서드 (0) | 2016.04.18 |
[XML.NET C# 소스] XmlReader 클래스의 ReadInnerXml 메서드 (0) | 2016.04.18 |
[XML.NET C# 소스] XmlReader 특성(Attribute) 읽기 (0) | 2016.04.18 |