Files
2026-01-14 14:33:12 +00:00

126 lines
5.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:wstop="http://docs.oasis-open.org/wsn/t-1" attributeFormDefault="unqualified"
elementFormDefault="qualified" targetNamespace="http://docs.oasis-open.org/wsn/t-1"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="Documentation" mixed="true">
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ExtensibleDocumented" abstract="true">
<xsd:sequence>
<xsd:element minOccurs="0" name="documentation" type="wstop:Documentation" />
</xsd:sequence>
<xsd:anyAttribute namespace="##other" processContents="lax" />
</xsd:complexType>
<xsd:complexType name="QueryExpressionType" mixed="true">
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="1" processContents="lax" />
</xsd:sequence>
<xsd:attribute name="Dialect" type="xsd:anyURI" use="required" />
</xsd:complexType>
<xsd:complexType name="TopicNamespaceType">
<xsd:complexContent mixed="false">
<xsd:extension base="wstop:ExtensibleDocumented">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="Topic">
<xsd:complexType>
<xsd:complexContent mixed="false">
<xsd:extension base="wstop:TopicType">
<xsd:attribute name="parent" type="wstop:ConcreteTopicExpression" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:NCName" />
<xsd:attribute name="targetNamespace" type="xsd:anyURI" use="required" />
<xsd:attribute default="false" name="final" type="xsd:boolean" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="TopicNamespace" type="wstop:TopicNamespaceType">
<xsd:unique name="rootTopicUniqueness">
<xsd:selector xpath="wstop:Topic" />
<xsd:field xpath="@name" />
</xsd:unique>
</xsd:element>
<xsd:attribute name="topicNamespaceLocation" type="xsd:anyURI" />
<xsd:complexType name="TopicType">
<xsd:complexContent mixed="false">
<xsd:extension base="wstop:ExtensibleDocumented">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="1" name="MessagePattern" type="wstop:QueryExpressionType" />
<xsd:element minOccurs="0" maxOccurs="unbounded" name="Topic" type="wstop:TopicType">
<xsd:unique name="childTopicUniqueness">
<xsd:selector xpath="wstop:topic" />
<xsd:field xpath="@name" />
</xsd:unique>
</xsd:element>
<xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##other" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:NCName" use="required" />
<xsd:attribute name="messageTypes">
<xsd:simpleType>
<xsd:list itemType="xsd:QName" />
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute default="false" name="final" type="xsd:boolean" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TopicSetType">
<xsd:complexContent mixed="false">
<xsd:extension base="wstop:ExtensibleDocumented">
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="TopicSet" type="wstop:TopicSetType" />
<xsd:attribute default="false" name="topic" type="xsd:boolean" />
<xsd:simpleType name="FullTopicExpression">
<xsd:restriction base="xsd:token">
<xsd:annotation>
<xsd:documentation>
TopicPathExpression ::= TopicPath ( '|' TopicPath )*
TopicPath ::= RootTopic ChildTopicExpression*
RootTopic ::= NamespacePrefix? ('//')? (NCName | '*')
NamespacePrefix ::= NCName ':'
ChildTopicExpression ::= '/' '/'? (QName | NCName | '*'| '.')
</xsd:documentation>
</xsd:annotation>
<xsd:pattern
value="([\i-[:]][\c-[:]]*:)?(//)?([\i-[:]][\c-[:]]*|\*)((/|//)(([\i-[:]][\c-[:]]*:)?[\i-[:]][\c-[:]]*|\*|[.]))*(\|([\i-[:]][\c-[:]]*:)?(//)?([\i-[:]][\c-[:]]*|\*)((/|//)(([\i-[:]][\c-[:]]*:)?[\i-[:]][\c-[:]]*|\*|[.]))*)*" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ConcreteTopicExpression">
<xsd:restriction base="xsd:token">
<xsd:annotation>
<xsd:documentation>
The pattern allows strings matching the following EBNF:
ConcreteTopicPath ::= RootTopic ChildTopic*
RootTopic ::= QName
ChildTopic ::= '/' (QName | NCName)
</xsd:documentation>
</xsd:annotation>
<xsd:pattern value="(([\i-[:]][\c-[:]]*:)?[\i-[:]][\c-[:]]*)(/([\i-[:]][\c-[:]]*:)?[\i-[:]][\c-[:]]*)*" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="SimpleTopicExpression">
<xsd:restriction base="xsd:QName">
<xsd:annotation>
<xsd:documentation>
The pattern allows strings matching the following EBNF:
RootTopic ::= QName
</xsd:documentation>
</xsd:annotation>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>