簡體   English   中英

如何在XSD中查找類型聲明?

[英]How to find a type declaration in an XSD?

我正在查看UPS Shipping API的XML,XSD包含以下代碼塊:

  <xsd:complexType name="PackageType">
    <xsd:sequence>
      <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
      <xsd:element name="PackagingType" type="PackagingTypeType" minOccurs="0"/>
      <xsd:element name="Dimensions" type="DimensionsType" minOccurs="0"/>
      <xsd:element name="DimWeight" type="PackageWeightType" minOccurs="0"/>
      <xsd:element name="PackageWeight" type="PackageWeightType" minOccurs="0"/>
      <xsd:element name="LargePackageIndicator" type="xsd:string" minOccurs="0"/>

...

我想看看PackageWeightType的可能值是PackageWeightType ,但我不知道如何回溯。 XSD的頂部是

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns:ups="http://www.ups.com/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="201707">
  <xsd:include schemaLocation="IF.xsd"/>

但是IF.xsd中沒有任何東西可以幫助我完成任務。

我下一步要做什么?

包含PackageType的同一XSD( ShipConfirmRequest.xsd ,版本201707)也包含PackageWeightType

<xsd:complexType name="PackageWeightType">
    <xsd:sequence>
        <xsd:element name="UnitOfMeasurement" type="UnitOfMeasurementType"/>
        <xsd:element name="Weight" type="xsd:string"/>
    </xsd:sequence>
</xsd:complexType>

以及UnitOfMeasurementType

<xsd:complexType name="UnitOfMeasurementType">
    <xsd:sequence>
        <xsd:element name="Code" type="xsd:string"/>
        <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
    </xsd:sequence>
</xsd:complexType>

通常,要查找聲明:

  1. 首先在您看到其用途的XSD中搜索。
  2. 接下來,以遞歸方式在包含/導入的 XSD文件及其包含/導入的XSD中搜索。 (通常,如果所有文件都在一個公共目錄中,則遞歸grep目錄樹就足夠了。)

如果組件在相同的名稱空間中,則只需查看原始XSD以及所包含XSD的可傳遞閉包。 如果組件位於其他名稱空間中,則通常可以根據引用的名稱空間找到XSD。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM