我想在xml文件中记录我的键盘笔划。属性可以是键,值可以是时间戳或其他方式(无关紧要)。我想以我的模式输出完全如下的方式编写模式:
<LoggingActions>
<Keyboad>
<Entry key="a">0</Entry>
<Entry key="b">1213</Entry>
<Entry key="c">3445</Entry>
</Keyboad>
</LoggingActions>
到目前为止,这是我的架构:
<xs:element name="MyEvents">
<xs:complexType>
<xs:sequence>
<xs:element ref="LoggingActions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="KeyboardEvent">
<xs:complexType>
<xs:sequence>
<xs:element ref="MyKeyEntry"/>
<xs:element ref="Time"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MyKeyEntry">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="keyReference"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Time">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="timeRef"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="keyReference" type="xs:string"/>
<xs:element name="timeRef" type="xs:int"/>
相反,我将这个xml作为我的输出:
<LoggingActionsxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<LoggedKey>
<MyKeyEntry>a</MyKeyEntry>
<MyKeyEntry>b</MyKeyEntry>
<MyKeyEntry>c</MyKeyEntry>
</LoggedKey>
<Time>
<timeRef>0</timeRef>
<timeRef>1213</timeRef>
<timeRef>3445</timeRef>
</Time>
</LoggingActions>
如何将这两者结合在一起?
谢谢,
答案 0 :(得分:2)
所需的XML格式不正确,您的“条目”备注应该有一些属性,可能类似于'value =“a”'而不仅仅是'=“a”',尽管它很容易推断你的意图。
<LoggingActions>
<Keyboard>
<Entry value="a">0</Entry>
<Entry value="b">1213</Entry>
<Entry value="c">3445</Entry>
</Keyboard>
</LoggingActions>
子序列模式如下所示:
<?xml version="1.0" encoding="utf-16"?>
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="LoggingActions" type="LoggingActionsType" />
<xsd:complexType name="LoggingActionsType">
<xsd:sequence>
<xsd:element name="Keyboard" type="KeyboardType" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="KeyboardType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="Entry" type="EntryType" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="EntryType">
<xsd:attribute name="value" type="xsd:string" />
</xsd:complexType>
</xsd:schema>