为了账号安全,请及时绑定邮箱和手机立即绑定

在 xsd 中一起使用扩展和普通属性

在 xsd 中一起使用扩展和普通属性

C#
叮当猫咪 2021-08-07 16:38:18
我正在尝试进行映射,我需要使用:Config.xxx.yyy.KeyPair[z].normalAttributeConfig.xxx.yyy.KeyPair[z]@extendAttributeKeyPair 可以使用 0 到 x 次额外属性:KeyId、KeyType、ValidTo、Active普通属性:PrivateKey、PublicKey但是当我尝试在 C# 中加载 xsd 文件时抛出错误:System.Xml.Schema.XmlSchemaException: The type attribute cannot be present with either simpleType or complexType.这里显示了我是如何制作的缩短版本,但它根本不起作用:<xs:element name="Config">  <xs:complexType>    <xs:all>      <xs:element name="xxx">        <xs:complexType>          <xs:all>            <xs:element name="EncryptionKeys" type="yyy"/>          </xs:all>        </xs:complexType>      </xs:element>    </xs:all>  </xs:complexType></xs:element><xs:element name="yyy">  <xs:complexType>    <xs:sequence>      <xs:element name="KeyPair" type="KeyPairExtraTypes" maxOccurs="unbounded" minOccurs="0">        <xs:complexType>          <xs:attributeGroup ref="KeyPairAttributes"/>          <xs:attributeGroup ref="KeyPairExtraTypes"/>        </xs:complexType>      </xs:element>    </xs:sequence>  </xs:complexType></xs:element><xs:attributeGroup name="KeyPairAttributes">  <xs:attribute name="PrivateKey" type="xs:string"/>  <xs:attribute name="PublicKey" type="xs:string"/></xs:attributeGroup><xs:complexType name="KeyPairExtraTypes">  <xs:simpleContent>    <xs:extension base="xs:string">      <xs:attribute type="xs:string" name="KeyId"/>      <xs:attribute type="xs:string" name="KeyType" use="required"/>      <xs:attribute type="xs:string" name="ValidTo" use="optional"/>      <xs:attribute type="xs:bool" name="Active" use="required"/>    </xs:extension>  </xs:simpleContent></xs:complexType>
查看完整描述

1 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

解决方案很简单。


<xs:element name="Config">

    <xs:complexType>

        <xs:all>

            <xs:element name="xxx">

                <xs:complexType>

                    <xs:all>

                        <xs:element name="EncryptionKeys">

                            <xs:complexType>

                                <xs:sequence>

                                    <xs:element name="KeyPair" maxOccurs="unbounded">

                                        <xs:complexType>

                                            <xs:all>

                                                <xs:element name="PublicKey" type="xs:string"/>

                                                <xs:element name="PrivateKey" type="xs:string"/>

                                            </xs:all>

                                            <xs:attribute name="KeyId"/>

                                            <xs:attribute name="KeyType" type="xs:string" use="required"/>

                                            <xs:attribute name="ValidTo" type="xs:string"/>

                                            <xs:attribute name="Active" type="xs:boolean" use="required"/>

                                        </xs:complexType>

                                    </xs:element>

                                </xs:sequence>

                            </xs:complexType>

                        </xs:element>

                    </xs:all>

                </xs:complexType>

            </xs:element>

        </xs:all>

    </xs:complexType>

</xs:element>


查看完整回答
反对 回复 2021-08-07
  • 1 回答
  • 0 关注
  • 161 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信