如何使用Namespace验证xml

时间:2013-09-24 09:45:52

标签: xml namespaces xsd

我有一个带有命名空间的xml文件,如下所示。

<iwxxm:METAR xmlns:iwxxm="http://icao.int/iwxxm/1.0RC2" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:om="http://www.opengis.net/om/2.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:metce="http://def.wmo.int/metce/2013" xmlns:sams="http://www.opengis.net/samplingSpatial/2.0" xmlns:sam="http://www.opengis.net/sampling/2.0" xmlns:saf="http://icao.int/saf/1.0RC2" gml:id="metar-WSSS-20130919T040000Z" status="NORMAL" automatedStation="false" xsi:schemaLocation="http://icao.int/iwxxm/1.0RC2 http://127.0.0.1:8080/fullmoon-required/icao/iwxxm/iwxxm.xsd http://def.wmo.int/metce/2013 http://localhost:8080/fullmoon-required/wmo/metce/metce.xsd">
<iwxxm:observation>
<om:OM_Observation gml:id="obs-WSSS-20130919T040000Z">
<om:type xlink:href="http://codes.wmo.int/49-2/observation-type/IWXXM/1.0/MeteorologicalAerodromeObservation" xlink:title="Aerodrome Observation"/>

。 。 等等...

我也有这个架构。但架构仅包含标记的详细信息。 (见下文)

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="response">
        <xsd:complexType >
            <xsd:sequence >
                <xsd:element ref="request_index"/>
                <xsd:element ref="data_source" />
                <xsd:element ref="request"/>
                <xsd:element ref="errors"/>
                <xsd:element ref="warnings"/>
                <xsd:element ref="time_taken_ms"/>
                <xsd:element ref="data"/>
            </xsd:sequence>
            <xsd:attribute name="version" type="xsd:string" default="1.1"/>

       </xsd:complexType>
    </xsd:element>

。 。 等等...

我面临的问题是当我使用第三方软件或java程序验证时,我收到的错误就像iwxxm:在架构中没有定义观察。

请就此提出建议以进行验证。

1 个答案:

答案 0 :(得分:0)

  

我面临的问题是当我使用第三方软件或java程序验证时,我收到的错误就像iwxxm:在架构中没有定义观察。

右。每个模式只能描述一个名称空间。 (该命名空间在targetNamespace

中使用<xs:schema>属性指定

但是您可以为不同的命名空间定义多个XML模式 并在描述整个XML的那个中导入它们。

还要看这个问题: Validate xml with multiple xsd files