1

我不明白。这个 XSD 到底是什么意思?:

<element name="X509Data" type="ds:X509DataType"/>
<complexType name="X509DataType">
    <sequence maxOccurs="unbounded">
        <choice>
            <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
            <element name="X509SKI" type="base64Binary"/>
            <element name="X509SubjectName" type="string"/>
            <element name="X509Certificate" type="base64Binary"/>
            <element name="X509CRL" type="base64Binary"/>
            <any namespace="##other" processContents="lax"/>
        </choice>
    </sequence>
</complexType>

我是这样理解的:

  • 元素下面的所有元素<sequence>都可以根据需要经常出现,但至少出现一次(因为minOccurs未设置属性minOccurs,默认值为 1)。

  • 但是元素下面的一个<choice>元素只能出现一次(因为没有设置minOccursmaxOccurs设置)。

但是,既然<choice>元素在元素之下<sequence>,那么其他列出的元素还能出现吗?那你为什么不定义<sequence>元素下的所有东西而不是定义另一个<choice>元素呢?

这是我的 XML 文档的一部分:

<X509Data>
    <X509IssuerSerial>
        <X509IssuerName>E=forename.surname@provider.com, CN=Forename Surname, OU=Management, O=Company, L=City, ST=State, C=CO</X509IssuerName>
        <X509SerialNumber>13894744055819454397</X509SerialNumber>
    </X509IssuerSerial>
    <X509Certificate>MIIEEjCCAvqgAwIBAgIJAMDUDBnsFse9MA0GCSqGSIb3DQEBCwUAMIGdMQswCQYD
    VQQGEwJERTEQMA4GA1UECAwHU2FjaHNlbjEQMA4GA1UEBwwHTGVpcHppZzERMA8G
    A1UECgwIQ29tcHVkb2MxEzARBgNVBAsMCk1hbmFnZW1lbnQxFTATBgNVBAMMDFN0
    ZXZlIE1hcnRpbjErMCkGCSqGSIb3DQEJARYcc3RldmUubWFydGluMTk5MEBvdXRs
    b29rLmNvbTAeFw0yMDAxMDcxNTQzMThaFw0yMTAxMDYxNTQzMThaMIGdMQswCQYD
    VQQGEwJERTEQMA4GA1UECAwHU2FjaHNlbjEQMA4GA1UEBwwHTGVpcHppZzERMA8G
    A1UECgwIQ29tcHVkb2MxEzARBgNVBAsMCk1hbmFnZW1lbnQxFTATBgNVBAMMDFN0
    ZXZlIE1hcnRpbjErMCkGCSqGSIb3DQEJARYcc3RldmUubWFydGluMTk5MEBvdXRs
    b29rLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOoYJi1AUDma
    w07WuR+ivHX+Kr3yf0F/d9SrEzHovmmxYyac7C4DheGglJ2H9A3u2x5osu4fG/1f
    JhEhMqhhLGBfLtUrB6v2CWh6FOz06sz/W8NaIRCo81eOJVJDqwiejk24q6JnjP37
    NZ7TQ0/7oeEU5VhKrgTWo0jUoCe6xqOSvuVlr1Er4Jh0zwVumWuj63UJsjXMgqC8
    R3Qomf2ZIgO0HTGOiXA5NXA4Hzsp2lyxn7/9UExzh6L5v+bQSFvCN12TRQeVLoR4
    xog9SOI1yiP3XzhZVbKVHOnXbuzxuuKjPOm7GjKELQoNaSIkwkZybKzXDZfyk3IM
    Vb8i86rg3xkCAwEAAaNTMFEwHQYDVR0OBBYEFFSiMmL2coCYAD82W8WQ9v4VDxc2
    MB8GA1UdIwQYMBaAFFSiMmL2coCYAD82W8WQ9v4VDxc2MA8GA1UdEwEB/wQFMAMB
    Af8wDQYJKoZIhvcNAQELBQADggEBAEwohR0qXn1yqt3wtRPzCzKbv7X+GUlNKZ21
    Rdc6GdwuyWI08gWh0g0EQ1MesYEv9PZbrwDQs+iOA8f9E5LVTJ0LRgug9DpxDagg
    JnQEKYQUhA3E4HBrNe3PH1h22+UD3AVbZ86LzkZdu5RooJQlJsLbJzWCUpjW/3zl
    M6z+1SHEre6GIRN8lPMOreZxVGgUlCSE6Y3qk2e/8WNeMCjQ9gpC3CEwTmL6law/
    7EgVcud3DI7MQg0ebRPtCSLROYokyThJROHlv7DGEdaEPrdk8dzq77ncxzac8amq
    B0V/qDtp5qD0N5KJT6P4JuOcVz3YFkROn2wjQ2RfhCr1ZMMbAUc=</X509Certificate>
</X509Data>

它是有效的,为什么?<X509IssuerSerial><X509Certificate>同时发生。

4

0 回答 0