2013-04-30 103 views
0

我想描述的XSD這個類的結構,但我無法找到任何解決方案:創建XSD類結構

public class A { 
string property { get; } 
B[] property2 { get; }//occurs 0 to unbound 
} 


public class B { 
string property { get; } 
} 

回答

1

下面是我認爲,以下XML架構將幫助您解決您的問題。

<?xml version="1.0" encoding="UTF-8"?> 
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/Class" xmlns:tns="http://www.example.org/Class" elementFormDefault="qualified"> 


<element name="A" type="tns:A"></element> 

<simpleType name="property"> 
    <restriction base="string"></restriction> 
</simpleType> 

<complexType name="B"> 
    <sequence> 
     <element name="property" type="tns:property"></element> 
    </sequence> 
</complexType> 

<complexType name="A"> 
    <sequence> 
     <element name="property" type="tns:property"></element> 
     <element name="B" type="tns:B" maxOccurs="unbounded" minOccurs="0"></element> 
    </sequence> 
</complexType> 

1

如果您正在使用C#看看這個提問/回答:

Programatically serialize class to xsd

但是,序列化到XSD時的問題是DataMember屬性對XSD有嚴重限制(請參閱http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/e95ba78b-9932-4d8a-91ac-6b40967d0d8b)。

所以,也許你可以通過序列化生成的XSD並執行一些自定義的修改,主要用於數據的限制(長度,範圍,最小值/最大值...)

[編輯]或者,如果你想自己動手看看這http://www.w3schools.com/schema/