在XML中为元素设置多个值

在XML中为元素设置多个值,xml,xsd,xsd-validation,xml-validation,xsd-1.1,Xml,Xsd,Xsd Validation,Xml Validation,Xsd 1.1,我不熟悉模式设计 <xs:element name="EVENT"> <xs:simpleType> <xs:list> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="SYS_EVT"/>

我不熟悉模式设计

<xs:element name="EVENT">
    <xs:simpleType>
        <xs:list>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="SYS_EVT"/>
                    <xs:enumeration value="CON_MGT_EVT"/>
                    <xs:enumeration value="PWR_MGT_EVT"/>
                    <xs:enumeration value="TEMP_EVT"/>
                    <xs:enumeration value="APP_MGT_EVT"/>
                    <xs:enumeration value="CFG_MGT_EVT"/>
                </xs:restriction>
            </xs:simpleType>
         </xs:list>
    </xs:simpleType>
</xs:element>
我正在尝试为XML中的元素设置多个值,如下所示:

<EVENT>SYS_EVENT, TEMP_EVENT </EVENT>
非常接近--只需做两个简单的更改:

  • 在列表成员之间使用空格,而不是逗号
  • 注意准确匹配拼写:SYS\ustrong>EVENTvs SYS\ustrong>EVT等
  • 因此,如果让XSD保持原样并更改XML

    <EVENT>SYS_EVT TEMP_EVT</EVENT>
    
    SYS\u EVT TEMP\u EVT
    

    然后XML将根据您的XSD成功验证。

    嗨,kjhughes,我按照您的建议进行了尝试,但仍然无法选择多个值。当我选择第二个值时,它将覆盖第一个值。选择?XSD用于验证,而不是选择。我描述的更改将允许根据XSD成功验证XML。说到选择多个值,XPath可以做到这一点,或者使用XSD的应用程序的UI可以在编辑XML时启用这一点。您提到使用XMLSpy进行模式设计。当您询问选择值时,您是否真的在询问XMLSpy XML编辑器是如何工作的?我成功地针对xsd验证了XML。我的想法是能够为xml中的单个元素设置多个值。很抱歉给你带来了困惑。对于事件元素,我需要多个值。但我在回答中显示了
    EVENT
    中的多个值:
    SYS\u EVT
    TEMP\u EVT
    。该XML针对您的XSD成功验证。对不起,我一定还是误会了。你的意思是你想要不止一个
    事件
    元素吗?SYS\u EVT TEMP\u EVT这就是我需要的。我设置了SYS_EVT,但是当我尝试设置TEMP_EVT时,元素变成TEMP_EVT,而我期望SYS_EVT TEMP_EVT。我一定错过了什么。