Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml GML动态特征历史抽象时间片约束_Xml_Xsd_Schema_Gml Geographic Markup Lan_Web Feature Service - Fatal编程技术网

Xml GML动态特征历史抽象时间片约束

Xml GML动态特征历史抽象时间片约束,xml,xsd,schema,gml-geographic-markup-lan,web-feature-service,Xml,Xsd,Schema,Gml Geographic Markup Lan,Web Feature Service,我正在设计一个GML应用程序模式,在这个模式中,我打算经常使用GML:DynamicFeature替换和扩展来支持标准化的WFS时间查询 我想将特定动态特性的gml:history的子级限制为gml:AbstractTimeSliceType可用扩展的子集 例如,给定以下模式: <element name="Position" type="PositionType" substitutionGroup="gml:DynamicFeature"/> <!-- --> &l

我正在设计一个GML应用程序模式,在这个模式中,我打算经常使用GML:DynamicFeature替换和扩展来支持标准化的WFS时间查询

我想将特定动态特性的gml:history的子级限制为gml:AbstractTimeSliceType可用扩展的子集

例如,给定以下模式:

<element name="Position" type="PositionType" substitutionGroup="gml:DynamicFeature"/>
<!--  -->
<complexType name="PositionType">
    <complexContent>
        <extension base="gml:DynamicFeatureType">
            <sequence>
                ... relevant elements here.
            </sequence>
        </extension>
    </complexContent>
</complexType>

<element name="CoordinateInstance" type="CoordinateInstanceType" substitutionGroup="gml:AbstractTimeSlice"/>
<!--  -->
<complexType name="CoordinateInstanceType">
    <complexContent>
        <extension base="gml:AbstractTimeSliceType">
            <sequence>
                <element name="coordinates" type="gml:DirectPositionType"/>
            </sequence>
        </extension>
    </complexContent>
</complexType>

<element name="SomeOtherTimeSlice" type="SomeOtherTimeSliceType" substitutionGroup="gml:AbstractTimeSlice"/>
<!--  -->
<complexType name="SomeOtherTimeSliceType">
    <complexContent>
        <extension base="gml:AbstractTimeSliceType">
            <sequence>
                <element name="other" type="string"/>
            </sequence>
        </extension>
    </complexContent>
</complexType>

... 这里有相关的内容。
限制应允许:

<Position gml:id="ID_1">
    <gml:history>
        <CoordinateInstance gml:id="CID_1">
            <geo:validTime>
                <geo:timePosition>2015-03-23T00:00:00</geo:timePosition>
            </geo:validTime>
            <coordinates uomLabels="m">-2389026.389 5043317.021 -3078529.8</coordinates>
        </CoordinateInstance>
        <CoordinateInstance gml:id="CID_2">
            <geo:validTime>
                <geo:timePosition>2015-03-16T00:00:00</geo:timePosition>
            </geo:validTime>
            <coordinates uomLabels="m">-2389026.39  5043317.021 -3078529.799</coordinates>
        </CoordinateInstance>
    </gml:history>
</Position>
<Position gml:id="ID_1">
    <gml:history>
        <SomeOtherTimeSlice gml:id="CID_1">
            <geo:validTime>
                <geo:timePosition>2015-03-23T00:00:00</geo:timePosition>
            </geo:validTime>
            <other>This element should never be allowed here.</other>
        </SomeOtherTimeSlice>
        <CoordinateInstance gml:id="CID_2">
            <geo:validTime>
                <geo:timePosition>2015-03-16T00:00:00</geo:timePosition>
            </geo:validTime>
            <coordinates uomLabels="m">-2389026.39  5043317.021 -3078529.799</coordinates>
        </CoordinateInstance>
    </gml:history>
</Position>

2015-03-23T00:00:00
-2389026.389 5043317.021 -3078529.8
2015-03-16T00:00:00
-2389026.39  5043317.021 -3078529.799
但不应允许这样做:

<Position gml:id="ID_1">
    <gml:history>
        <CoordinateInstance gml:id="CID_1">
            <geo:validTime>
                <geo:timePosition>2015-03-23T00:00:00</geo:timePosition>
            </geo:validTime>
            <coordinates uomLabels="m">-2389026.389 5043317.021 -3078529.8</coordinates>
        </CoordinateInstance>
        <CoordinateInstance gml:id="CID_2">
            <geo:validTime>
                <geo:timePosition>2015-03-16T00:00:00</geo:timePosition>
            </geo:validTime>
            <coordinates uomLabels="m">-2389026.39  5043317.021 -3078529.799</coordinates>
        </CoordinateInstance>
    </gml:history>
</Position>
<Position gml:id="ID_1">
    <gml:history>
        <SomeOtherTimeSlice gml:id="CID_1">
            <geo:validTime>
                <geo:timePosition>2015-03-23T00:00:00</geo:timePosition>
            </geo:validTime>
            <other>This element should never be allowed here.</other>
        </SomeOtherTimeSlice>
        <CoordinateInstance gml:id="CID_2">
            <geo:validTime>
                <geo:timePosition>2015-03-16T00:00:00</geo:timePosition>
            </geo:validTime>
            <coordinates uomLabels="m">-2389026.39  5043317.021 -3078529.799</coordinates>
        </CoordinateInstance>
    </gml:history>
</Position>

2015-03-23T00:00:00
此处不应允许使用此元素。
2015-03-16T00:00:00
-2389026.39  5043317.021 -3078529.799
有没有办法用XML模式来实现这一点

我在这里查阅了如何通过限制来重新定义元素:但我不知道如何在这种情况下使用这种技术,因为gml:DynamicFeature使用gml:DynamicProperties组,这使执行限制的方式复杂化。此外,它还需要与WFS查询动态功能兼容

请帮忙

编辑:我尝试了以下架构,但出现错误:

<complexType name="CoordinateVelocityDynamicFeatureType">
    <complexContent>
        <restriction base="gml:DynamicFeatureType">
            <sequence>
                <sequence>
                    <group ref="gml:StandardObjectProperties"/>
                </sequence>
                <sequence>
                    <element ref="gml:boundedBy" minOccurs="0"/>
                    <element ref="gml:location" minOccurs="0"/>
                </sequence>
                <sequence>
                    <element ref="gml:validTime" minOccurs="0"/>
                    <element ref="geo:PositionHistory" minOccurs="0"/>
                    <element ref="gml:dataSource" minOccurs="0"/>
                    <element ref="gml:dataSourceReference" minOccurs="0"/>
                </sequence>
            </sequence>
        </restriction>
    </complexContent>
</complexType>
<!--  -->
<element name="PositionHistory" type="geo:PositionHistoryPropertyType" substitutionGroup="gml:history"/>
<!--  -->
<complexType name="PositionHistoryPropertyType">
    <complexContent>
        <restriction base="gml:HistoryPropertyType">
            <sequence>
                <element ref="geo:CoordinateInstance"/>
            </sequence>
            <attributeGroup ref="gml:OwnershipAttributeGroup"/>
        </restriction>
    </complexContent>
</complexType>
<!--  -->
<element name="Position" type="geo:PositionType" substitutionGroup="gml:DynamicFeature"/>
<!--  -->
<complexType name="PositionType">
    <complexContent>
        <extension base="geo:CoordinateVelocityDynamicFeatureType">

错误是:

文件 D:\git\eGeodesy\0.2\geodesyml\schemas\geodesyml\geodesyml\ObservationSystem.xsd 无效。类型“geo:CoordinationLevel动态特征类型”不可用 类型为“gml:DynamicFeatureType”的有效限制。(见详情) 错误位置:架构/complexType/complexContent/restriction /@base Details rcase name和typeok.1:声明{name}s 和{target namespace}不相同:限制元素为 基本元素是 . 范围确定。1:这部分内容 模型不是有效的限制,因为'minOccurs'值'0'为 小于“1”。rcase NAME和TYPEOK.2:出现范围不是 有效发生限制 范围rcase NameAndTypeOK.1:声明{name}和{target 命名空间}不同:限制元素为,基元素为。rcase RecurseLax.2:没有完整的 到粒子的保序函数映射 微粒。rcase递归组: 是无效的 模型群粒子的限制。 rcase name和TYPEOK.1:元素的名称和目标命名空间不匹配 各基本粒子的项。(见下文) 名称不匹配:限制,基本。 名称不匹配:限制,基本。cos粒子限制。2.1:取代基为 扩展到选择模型组。(见下文) 将元素的替代群扩展为选择模型群。(见下文) “gml:位置” “gml:优先位置” 将元素的替代群扩展为选择模型群。(见下文) “地理:有效时间” “gml:validTime” 将元素的替代群扩展为选择模型群。(见下文) “地理:有效时间” “gml:validTime” 将元素的替代群扩展为选择模型群。(见下文) “gml:历史” “地理位置:历史” “gml:track”rcase递归。2.1:这必须限制基本内容模型的对应。 派生ok限制。5.4:内容类型不是 内容类型的有效限制


另外,我不确定WFS是否支持通过使用更严格的类型位置HistoryPropertyType替换gml:history来重新定义gml:DynamicFeatureType。有人知道典型的WFS在动态功能和查询方面支持什么吗?

我想你是想标记这个gml地理标记lan,而不是代表StackOverflow上Game Maker语言的gml。谢谢,我会重新标记它。