2013-09-24 61 views
0

我有一個像下面這樣的名稱空間的xml文件。如何使用命名空間驗證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:觀察未在模式中定義。

請指教驗證。

回答

0

我面臨的問題是當我使用第三方軟件或Java程序進行驗證時我收到錯誤如iwxxm:觀察未在模式中定義。

沒錯。每個模式只能描述一個名稱空間。

(即命名空間與<xs:schema>targetNamespace屬性指定),但你可以定義多個XML模式不同的命名空間 並在一個描述整個你的XML導入。

也看看這個問題: Validate xml with multiple xsd files