grammar { start = element request { (QuickPoll | Poll)? & Control? } Poll = element poll { element status { empty }? & element duration { empty }? & element position { empty }? & element get { attribute property { text } }* & element info { empty }? } QuickPoll = element quickpoll { element status { empty } | element duration { empty } | element position { empty } | element get { attribute property { text } } | element info { empty } } Control = element control { element play { attribute file { text }, attribute add { "true" | "false" }?, attribute sequence { "true" | "false" }? }? & element pause { empty }? & element stop { empty }? & element set { attribute property { text }, attribute newvalue { text } }? & element position { attribute time { xsd:nonNegativeInteger }, attribute absolute { "true" | "false" } }? & element fastforward { attribute amount { xsd:nonNegativeInteger } }? & element rewind { attribute amount { xsd:nonNegativeInteger } }? } }