Issue 16208: Formal definition of XML (rls-rtf) Source: JARA (Mr. Shuichi Nishio, nishio(at)ieee.org) Nature: Uncategorized Issue Severity: Summary: Although examples of XML description is provided in Annex A, an formal specification such as XML schema is also necessary for constructing a parser. Resolution: Besides XML examples, Annex A provides XML schema definitions. However, the definition is not complete. Thus, revise the XML schema definition in Annex A. Revised Text: * Modify the first paragraph of Annex A.1 as following: This annex provides a platform specific model for XML. This PSM has two variations, generic model and architecture-specific model. The generic model is derived by mapping naively from UML model of RoLo data to XML, and is able to represent any RLS elements. But, it is impossible to restrict structures syntactically for a specification of certain architecture even if the architecture of the data is known. * Modify the third paragraph of Annex A.1 as following: Hereafter, the target namespace of the given XML schemas is assumed to be “http://www.omg.org/rls/1.1.” Also, the prefix “rls” indicates the same namespace. * Modify Annex A.2 as following: A.2 Generic Model The generic model is described below by XML schema definition. <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:rls="http://www.omg.org/rls/1.1" xmlns:gml="http://www.opengis.net/gml/3.2" targetNamespace="http://www.omg.org/rls/1.1" elementFormDefault="qualified" attributeFormDefault="qualified"> <xsd:import namespace="http://www.opengis.net/gml/3.2" schemaLocation="ISO_19136/GML.xsd"/> <!-- Fig.7 RoLo Error Type --> <xsd:element name="ErrorType" type="rls:ErrorTypeType"/> <xsd:complexType name="ErrorTypeType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="baseType" type="xsd:ID" minOccurs="0" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ErrorTypeOperation" type="rls:ErrorTypeOperationType"/> <xsd:complexType name="ErrorTypeOperationType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="source" type="xsd:ID" minOccurs="1" maxOccurs="1"/> <xsd:element name="target" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Fig.8 RoLo Error --> <xsd:element name="AbstractError" type="rls:AbstractErrorType" abstract="true"/> <xsd:complexType name="AbstractErrorType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="errorType" type="xsd:ID" minOccurs="0" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Reliability --> <xsd:element name="Reliability" type="rls:ReliabilityType" substitutionGroup="rls:AbstractError" /> <xsd:complexType name="ReliabilityType"> <xsd:complexContent> <xsd:extension base="rls:AbstractErrorType"> <xsd:annotation> <xsd:documentation> xsd:restriction base="xsd:float" </xsd:documentation> </xsd:annotation> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ErrorDistribution --> <xsd:element name="AbstractErrorDistribution" type="rls:AbstractErrorDistributionType" substitutionGroup="rls:AbstractError" abstract="true" /> <xsd:complexType name="AbstractErrorDistributionType"> <xsd:complexContent> <xsd:extension base="rls:AbstractErrorType"/> </xsd:complexContent> </xsd:complexType> <!-- Gaussian --> <xsd:element name="Gaussian" type="rls:GaussianType" substitutionGroup="rls:AbstractErrorDistribution" /> <xsd:complexType name="GaussianType"> <xsd:complexContent> <xsd:extension base="rls:AbstractErrorDistributionType"> <xsd:sequence> <xsd:element name="cov" type="rls:CovarianceMatrixType" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="MatrixType"> <xsd:simpleContent> <xsd:extension base="gml:doubleList"> <xsd:attribute name="nRow" type="xsd:positiveInteger" use="required"/> <xsd:attribute name="nCol" type="xsd:positiveInteger" use="required"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:complexType name="CovarianceMatrixType"> <xsd:complexContent> <xsd:restriction base="rls:MatrixType"> <xsd:annotation> <xsd:documentation> Attributes "nRow" should be equal to "nCol" </xsd:documentation> </xsd:annotation> </xsd:restriction> </xsd:complexContent> </xsd:complexType> <!-- Uniform Gaussian --> <xsd:element name="UniformGaussian" type="rls:UniformGaussianType" substitutionGroup="rls:Gaussian" /> <xsd:complexType name="UniformGaussianType"> <xsd:complexContent> <xsd:extension base="rls:GaussianType"> <xsd:annotation> <xsd:documentation> Attributes "nRow" and "nCol" should be "1". </xsd:documentation> </xsd:annotation> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Mixture Model --> <xsd:element name="AbstractMixtureModel" type="rls:AbstractMixtureModelType" substitutionGroup="rls:AbstractErrorDistribution" abstract="true" /> <xsd:complexType name="AbstractMixtureModelType" abstract="true"> <xsd:complexContent> <xsd:extension base="rls:AbstractErrorDistributionType"/> </xsd:complexContent> </xsd:complexType> <!-- Linear Mixture Model --> <xsd:element name="AbstractLinearMixtureModel" type="rls:AbstractLinearMixtureModelType" substitutionGroup="rls:AbstractMixtureModel" abstract="true" /> <xsd:complexType name="AbstractLinearMixtureModelType"> <xsd:complexContent> <xsd:extension base="rls:AbstractMixtureModelType"> <xsd:sequence> <xsd:element name="models" type="rls:ModelType" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="ModelType"> <xsd:extension base="rls:PositionElementType"/> </xsd:complexType> <xsd:complexType name="WeightedModelType"> <xsd:extension base="rls:ModelType"> <xsd:sequence> <xsd:element name="weight" type="xsd:float" minOccurs="1" maxOccurs="1" /> </xsd:sequence> </xsd:extension> </xsd:complexType> <!-- Particle Set --> <xsd:element name="ParticleSet" type="rls:ParticleSetType" substitutionGroup="rls:AbstractLinearMixtureModel" /> <xsd:complexType name="ParticleSetType"> <xsd:complexContent> <xsd:extension base="rls:AbstractLinearMixtureModelType"> <xsd:annotation> <xsd:documentation> Each "model" element shall contain without "err" element. This is interpreted that the error is a Gaussian distribution with an all-zero covariance matrix. </xsd:documentation> </xsd:annotation> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- MixtureOfGaussian --> <xsd:element name="MixtureOfGaussian" type="rls:MixtureOfGaussianType" substitutionGroup="rls:AbstractLinearMixtureModel" /> <xsd:complexType name="MixtureOfGaussianType"> <xsd:complexContent> <xsd:extension base="rls:AbstractLinearMixtureModelType"> <xsd:annotation> <xsd:documentation> Each "model" element shall contain an error information of Gaussian distribution. </xsd:documentation> </xsd:annotation> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Fig.10 RoLo Architecture --> <!-- DataSpecification --> <xsd:element name="DataSpecification" type="rls:DataSpecificationType"/> <xsd:complexType name="DataSpecificationType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:choice minOccurs="1" maxOccurs="unbounded"> <xsd:element ref="rls:PositionElementSpecification" /> <xsd:element ref="rls:ErrorElementSpecification" /> </xsd:choice> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Data --> <xsd:element name="Data" type="rls:DataType"/> <xsd:complexType name="DataType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="spec" type="xsd:ID" minOccurs="0" maxOccurs="1"/> <xsd:choice minOccurs="1" maxOccurs="unbounded"> <xsd:element ref="rls:PositionElement" /> <xsd:element ref="rls:ErrorElement" /> </xsd:choice> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- PositionElementSpecification --> <xsd:element name="PositionElementSpecification" type="rls:PositionElementSpecificationType"/> <xsd:complexType name="PositionElementSpecificationType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="crs" type="xsd:ID" minOccurs="1" maxOccurs="1"/> <xsd:element name="errType" type="xsd:ID" minOccurs="0" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ErrorElementSpecification --> <xsd:element name="ErrorElementSpecification" type="rls:ErrorElementSpecificationType"/> <xsd:complexType name="ErrorElementSpecificationType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="posSpecRefs" type="rls:PositionElementSpecificationType" minOccurs="1" maxOccurs="unbounded"/> <xsd:element name="errType" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ErrorElement --> <xsd:element name="ErrorElement" type="rls:ErrorElementType"/> <xsd:complexType name="ErrorElementType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="spec" type="xsd:ID" minOccurs="1" maxOccurs="1"/> <xsd:element name="err" type="rls:AbstractErrorType" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- PositionElement --> <xsd:element name="PositionElement" type="rls:PositionElementType"/> <xsd:complexType name="PositionElementType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="spec" type="xsd:ID" minOccurs="1" maxOccurs="1"/> <xsd:element name="err" type="rls:AbstractErrorType" minOccurs="0" maxOccurs="1"/> <xsd:element name="pos" type="rls:PositionType" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Position --> <xsd:complexType name="PositionType"> <xsd:choice> <xsd:element ref="rls:SymbolicPosition"/> <xsd:element ref="rls:NumericPosition"/> </xsd:choice> </xsd:complexType> <!-- Numeric Position --> <xsd:element name="NumericPosition" type="rls:NumericPositionType"/> <xsd:complexType name="NumericPositionType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:group ref="gml:geometricPositionGroup"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Figure 5: Identity Information --> <!-- SetCoordinateSystemAxis --> <xsd:element name="SetCoordinateSystemAxis" type="rls:SetCoordinateSystemAxisType" substitutionGroup="gml:CoordinateSystemAxis"/> <xsd:complexType name="SetCoordinateSystemAxisType"> <xsd:complexContent> <xsd:extension base="gml:CoordinateSystemAxisType"/> </xsd:complexContent> </xsd:complexType> <!-- StringSetCoordinateSystemAxis --> <xsd:element name="StringSetCoordinateSystemAxis" type="rls:StringSetCoordinateSystemAxisType" substitutionGroup="rls:SetCoordinateSystemAxis"/> <xsd:complexType name="StringSetCoordinateSystemAxisType"> <xsd:complexContent> <xsd:extension base="rls:SetCoordinateSystemAxisType"/> </xsd:complexContent> </xsd:complexType> <!-- IntegerSetCoordinateSystemAxis --> <xsd:element name="IntegerSetCoordinateSystemAxis" type="rls:IntegerSetCoordinateSystemAxisType" substitutionGroup="rls:SetCoordinateSystemAxis"/> <xsd:complexType name="IntegerSetCoordinateSystemAxisType"> <xsd:complexContent> <xsd:extension base="rls:SetCoordinateSystemAxisType"/> </xsd:complexContent> </xsd:complexType> <!-- SymbolicPosition --> <xsd:element name="SymbolicPosition" type="rls:SymbolicPositionType"/> <xsd:complexType name="SymbolicPositionType"> <xsd:complexContent> <xsd:sequence> <xsd:element name="coords" type="rls:SymbolicCoordinateType" minOccurs="1" maxOccurs="unbounded"/> <xsd:element ref="rls:SymbolicIdentityCRS" minOccurs="0" maxOccurs="1"/> </xsd:sequence> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="SymbolicCoordinateType"> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="axisName" type="xsd:string" use="required" /> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- IdentityDatum --> <xsd:element name="IdentityDatum" type="rls:IdentityDatumType" substitutionGroup="gml:AbstractDatum"/> <xsd:complexType name="IdentityDatumType"> <xsd:complexContent> <xsd:extension base="gml:AbstractDatumType"/> </xsd:complexContent> </xsd:complexType> <!-- IdentityCRS --> <xsd:element name="AbstractIdentityCRS" type="rls:AbstractIdentityCRSType" abstract="true" substitutionGroup="gml:AbstractSingleCRS"/> <xsd:complexType name="AbstractIdentityCRSType"> <xsd:complexContent> <xsd:extension base="gml:AbstractCRSType"> <xsd:sequence> <xsd:element name="usesDatum" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- IdentityCS --> <xsd:element name="AbstractIdentityCS" type="rls:AbstractIdentityCSType" abstract="true" substitutionGroup="gml:AbstractCoordinateSystem"/> <xsd:complexType name="AbstractIdentityCSType"> <xsd:complexContent> <xsd:extension base="gml:AbstractCoordinateSystemType"/> </xsd:complexContent> </xsd:complexType> <!-- NumericIdentityCRS --> <xsd:element name="NumericIdentityCRS" type="rls:NumericIdentityCRSType" substitutionGroup="rls:AbstractIdentityCRS"/> <xsd:complexType name="NumericIdentityCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractIdentityCRSType"> <xsd:sequence> <xsd:element name="usesCS" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- NumericIdentityCS --> <xsd:element name="NumericIdentityCS" type="rls:NumericIdentityCSType" substitutionGroup="rls:AbstractIdentityCS"/> <xsd:complexType name="NumericIdentityCSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractIdentityCSType"/> </xsd:complexContent> </xsd:complexType> <!-- SymbolicIdentityCRS --> <xsd:element name="SymbolicIdentityCRS" type="rls:SymbolicIdentityCRSType" substitutionGroup="rls:AbstractIdentityCRS"/> <xsd:complexType name="SymbolicIdentityCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractIdentityCRSType"> <xsd:sequence> <xsd:element name="usesCS" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- SymbolicIdentityCS --> <xsd:element name="SymbolicIdentityCS" type="rls:SymbolicIdentityCSType" substitutionGroup="rls:AbstractIdentityCS"/> <xsd:complexType name="SymbolicIdentityCSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractIdentityCSType"/> </xsd:complexContent> </xsd:complexType> <!-- Pose --> <!-- PoseType --> <xsd:element name="PoseType" type="rls:PoseTypeType"/> <xsd:complexType name="PoseTypeType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="baseType" type="xsd:ID" minOccurs="0" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- PositionPoseCRS --> <xsd:element name="AbstractPositionPoseCRS" type="rls:AbstractPositionPoseCRSType" substitutionGroup="gml:AbstractReferenceSystemType"/> <xsd:complexType name="AbstractPositionPoseCRSType"> <xsd:complexContent> <xsd:extension base="gml:AbstractReferenceSystemType"> <xsd:sequence> <xsd:element name="poseType" type="xsd:ID" minOccurs="1" maxOccurs="1"/> <xsd:element name="positionCRS" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Figure 3: Relative and Mobile coordinate reference system --> <!-- RelativeDatum --> <xsd:element name="AbstractRelativeDatum" type="rls:AbstractRelativeDatumType" substitutionGroup="gml:EngineeringDatum"/> <xsd:complexType name="AbstractRelativeDatumType"> <xsd:complexContent> <xsd:extension base="gml:EngineeringDatumType"/> </xsd:complexContent> </xsd:complexType> <!-- StaticRelativeDatum --> <xsd:element name="StaticRelativeDatum" type="rls:StaticRelativeDatumType" substitutionGroup="rls:AbstractRelativeDatum"/> <xsd:complexType name="StaticRelativeDatumType"> <xsd:complexContent> <xsd:extension base="rls:AbstractRelativeDatumType"> <xsd:sequence> <xsd:element name="dataSpec" type="xsd:ID" minOccurs="0" maxOccurs="1"/> <xsd:element name="base" type="rls:DataType" minOccurs="0" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- DynamicRelativeDatum --> <xsd:element name="DynamicRelativeDatum" type="rls:DynamicRelativeDatumType" substitutionGroup="rls:AbstractRelativeDatum"/> <xsd:complexType name="DynamicRelativeDatumType"> <xsd:complexContent> <xsd:extension base="rls:AbstractRelativeDatumType"/> </xsd:complexContent> </xsd:complexType> <!-- MobileDatum --> <xsd:element name="MobileDatum" type="rls:MobileDatumType" substitutionGroup="rls:DynamicRelativeDatum"/> <xsd:complexType name="MobileDatumType"> <xsd:complexContent> <xsd:extension base="rls:DynamicRelativeDatumType"> <xsd:sequence> <xsd:element name="inStream" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- RelativeCRS --> <xsd:element name="AbstractRelativeCRS" type="rls:AbstractRelativeCRSType" substitutionGroup="gml:EngineeringCRS"/> <xsd:complexType name="AbstractRelativeCRSType"> <xsd:complexContent> <xsd:extension base="gml:EngineeringCRSType"> <xsd:sequence> <xsd:element name="usesDatum" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- StaticRelativeCRS --> <xsd:element name="AbstractStaticRelativeCRS" type="rls:AbstractStaticRelativeCRSType" substitutionGroup="rls:AbstractRelativeCRS"/> <xsd:complexType name="AbstractStaticRelativeCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractRelativeCRSType"> <xsd:sequence> <xsd:element name="usesDatum" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- StaticRelativeCartesianCRS --> <xsd:element name="StaticRelativeCartesianCRS" type="rls:StaticRelativeCartesianCRSType" substitutionGroup="rls:AbstractStaticRelativeCRS"/> <xsd:complexType name="StaticRelativeCartesianCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractStaticRelativeCRSType"> <xsd:sequence> <xsd:element name="usesCS" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- StaticRelativePolarCRS --> <xsd:element name="StaticRelativePolarCRS" type="rls:StaticRelativePolarCRSType" substitutionGroup="rls:AbstractStaticRelativeCRS"/> <xsd:complexType name="StaticRelativePolarCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractStaticRelativeCRSType"> <xsd:sequence> <xsd:element name="usesCS" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- DynamicRelativeCRS --> <xsd:element name="AbstractDynamicRelativeCRS" type="rls:AbstractDynamicRelativeCRSType" substitutionGroup="rls:AbstractRelativeCRS"/> <xsd:complexType name="AbstractDynamicRelativeCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractRelativeCRSType"/> </xsd:complexContent> </xsd:complexType> <!-- MobileCRS --> <xsd:element name="AbstractMobileCRS" type="rls:AbstractMobileCRSType" substitutionGroup="rls:AbstractDynamicRelativeCRS"/> <xsd:complexType name="AbstractMobileCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractDynamicRelativeCRSType"> <xsd:sequence> <xsd:element name="usesDatum" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- MobileCartesianCRS --> <xsd:element name="MobileCartesianCRS" type="rls:MobileCartesianCRSType" substitutionGroup="rls:AbstractMobileCRS"/> <xsd:complexType name="MobileCartesianCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractMobileCRSType"> <xsd:sequence> <xsd:element name="usesCS" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- MobilePolarCRS --> <xsd:element name="MobilePolarCRS" type="rls:MobilePolarCRSType" substitutionGroup="rls:AbstractMobileCRS"/> <xsd:complexType name="MobilePolarCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractMobileCRSType"> <xsd:sequence> <xsd:element name="usesCS" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Figure 13: RoLo Data Format --> <!-- DataFormat --> <xsd:element name="AbstractDataFormat" type="rls:AbstractDataFormatType"/> <xsd:complexType name="AbstractDataFormatType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"/> </xsd:complexContent> </xsd:complexType> <!-- Figure 20 - RoLo Ability --> <!-- AttributeSet --> <xsd:element name="AttributeSet" type="rls:AttributeSetType"/> <xsd:complexType name="AttributeSetType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"/> </xsd:complexContent> </xsd:complexType> <!-- Ability --> <xsd:element name="Ability" type="rls:AbilityType" substitutionGroup="rls:AttributeSet"/> <xsd:complexType name="AbilityType"> <xsd:complexContent> <xsd:extension base="rls:AttributeSetType"/> </xsd:complexContent> </xsd:complexType> <!-- Figure 21 - RoLo Service --> <!-- StreamType --> <xsd:simpleType name="StreamTypeType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="PUSH"/> <xsd:enumeration value="PULL"/> </xsd:restriction> </xsd:simpleType> <!-- StreamAbility --> <xsd:element name="StreamAbility" type="rls:StreamAbilityType" substitutionGroup="rls:Ability"/> <xsd:complexType name="StreamAbilityType"> <xsd:complexContent> <xsd:extension base="rls:AbilityType"> <xsd:sequence> <xsd:element name="dataFormat" type="rls:AbstractDataFormatType" minOccurs="1" maxOccurs="1"/> <xsd:element name="dataSpec" type="rls:DataSpecificationType" minOccurs="1" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="streamType" use="required"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="PUSH"/> <xsd:enumeration value="PULL"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> <xsd:attribute name="frequency" type="xsd:double" use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ServiceAbility --> <xsd:element name="ServiceAbility" type="rls:ServiceAbilityType" substitutionGroup="rls:Ability"/> <xsd:complexType name="ServiceAbilityType"> <xsd:complexContent> <xsd:extension base="rls:AbilityType"> <xsd:sequence> <xsd:element name="inStreamAbilities" type="rls:StreamAbilityType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="outStreamAbility" type="rls:StreamAbilityType" minOccurs="1" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="expectedLatency" type="xsd:double" use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:schema> Actions taken: May 9, 2011: received issue October 21, 2011: closed issue Discussion: End of Annotations:===== te: Mon, 09 May 2011 07:59:07 +0900 (JST) To: issues@omg.org Cc: rls-rtf@omg.org Subject: Re: Robotic Localization Service RTF issues From: nishio@ieee.org X-Mailer: Mew version 6.1 on Emacs 22.0.50 / Mule 5.0 (SAKAKI) Dear Juergen, Please also add the followings as issues for RLS-RTF. Title: Formal definition of XML Source: JARA, Shuichi Nishio, nishio@ieee.org Summary: Although examples of XML description is provided in Annex A, an formal specification such as XML schema is also necessary for constructing a parser.