Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 枚举类型的正确XSD_C#_Xml_Xsd_Xsd Validation_Xsd 1.0 - Fatal编程技术网

C# 枚举类型的正确XSD

C# 枚举类型的正确XSD,c#,xml,xsd,xsd-validation,xsd-1.0,C#,Xml,Xsd,Xsd Validation,Xsd 1.0,我有一个枚举类,比如 public enum Test { a = 1, b = 2 } 我正在为这些创建xsd,如下所示 <xs:complexType name="Test"> <xs:all> <xs:element name="TCode" type="TestCode" minOccurs="1" maxOccurs="1" /> <xs:element name="TValue" type="TestValu

我有一个枚举类,比如

public enum Test
{
    a = 1,
    b = 2
}
我正在为这些创建xsd,如下所示

<xs:complexType name="Test">
<xs:all>
    <xs:element name="TCode" type="TestCode" minOccurs="1" maxOccurs="1" />
    <xs:element name="TValue" type="TestValue" minOccurs="1" maxOccurs="1" />
</xs:all>
</xs:complexType>    

<xs:simpleType name="TestCode">
    <xs:restriction base="xs:string">
        <xs:enumeration value="a" />
        <xs:enumeration value="b" />
    </xs:restriction>
</xs:simpleType>

<xs:simpleType name="TestValue">
    <xs:restriction base="xs:string">
        <xs:enumeration value="1" />
        <xs:enumeration value="2" />
    </xs:restriction>
</xs:simpleType>

有什么想法吗?

我认为使用标准xsd函数不可能做到这一点。 但是,如果TCode和TValue有固定的1:1关系,那么您是否最好只问其中一个?这将导致无法创建无效状态

例如:

<xs:complexType name="Test">
 <xs:choise>
  <xs:element name="TCode" type="TestCode" minOccurs="1" maxOccurs="1" />
  <xs:element name="TValue" type="TestValue" minOccurs="1" maxOccurs="1" />
 </xs:choise>
</xs:complexType> 

xml中的C枚举测试如下所示:a或b。就这些!为什么Xml及其模式如此复杂?Xml模式的哪个版本?1.1? 如果是这样的话,断言会有所帮助。key/keyref对不同的值没有帮助。@AlexanderPetrov,我没有使用1.1版本,抱歉,这不是我问题的答案。否则,请详细解释为什么不可能只做一个标记的想法只是一个建议,如果你需要的话,可以改进你的xsd。我将此作为回答而不是评论发布,因为我还没有这样做的“权利”。几天后我才成为会员。在阅读您的问题时,我假设您需要一种创建xml格式的方法,可以根据xsd进行验证。如果不是这样,那么请在你的实际目标问题中提供更多信息。关于这不是你问题答案的部分;我不同意。这可能不是你想要的答案,但那是另外一回事。。。
<xs:complexType name="Test">
 <xs:choise>
  <xs:element name="TCode" type="TestCode" minOccurs="1" maxOccurs="1" />
  <xs:element name="TValue" type="TestValue" minOccurs="1" maxOccurs="1" />
 </xs:choise>
</xs:complexType>