1

XSD ファイルに変換された XML があります。SUP で XSD ファイルをインポート/使用しようとすると、「実行エラー」が表示されます。

"Cannot resolve namespace URI for qualified name: sap:label"

XML と XSD の両方が自動的に作成されたので (XML は SAP によって、XSD はhttp://www.freeformatter.com/によって)、ちょっとガイダンスが必要です :D

XML は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="1.0" 
  xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx" 
  xmlns:gp="http://www.sap.com/Protocols/SAPData/GenericPlayer" 
  xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
  xmlns:sap="http://www.sap.com/Protocols/SAPData">
    <edmx:DataServices m:DataServiceVersion="2.0">
        <Schema Namespace="Z_SERVICE_BANK_V3" 
                xmlns="http://schemas.microsoft.com/ado/2008/09/edm">
            <EntityType Name="Bank" sap:content-version="1">
                <Key>
                    <PropertyRef Name="bankCountry"/>
                    <PropertyRef Name="bankID"/>
                </Key>
                <Property Name="bankCountry" Type="Edm.String" Nullable="false" MaxLength="3" sap:label="Bank Country" sap:filterable="false"/>
                <Property Name="bankID" Type="Edm.String" Nullable="false" MaxLength="15" sap:label="Bank Key" sap:filterable="false"/>
                <Property Name="bankName" Type="Edm.String" MaxLength="60" sap:label="Bank name" sap:filterable="false"/>
                <Property Name="region" Type="Edm.String" MaxLength="3" sap:label="Region" sap:filterable="false"/>
                <Property Name="street" Type="Edm.String" MaxLength="35" sap:label="Street" sap:filterable="false"/>
                <Property Name="city" Type="Edm.String" MaxLength="35" sap:label="City" sap:filterable="false"/>
            </EntityType>
            <EntityContainer Name="Z_SERVICE_BANK_V3" m:IsDefaultEntityContainer="true">
                <EntitySet Name="BankCollection" EntityType="Z_SERVICE_BANK_V3.Bank" sap:content-version="1"/>
            </EntityContainer>
        </Schema>
    </edmx:DataServices>
</edmx:Edmx>

そして、ここにXSDがあります:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/ado/2008/09/edm">
    <xs:element name="Schema">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="EntityType">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Key">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="PropertyRef" maxOccurs="unbounded" minOccurs="0">
                                            <xs:complexType>
                                                <xs:simpleContent>
                                                    <xs:extension base="xs:string">
                                                        <xs:attribute type="xs:string" name="Name" use="optional"/>
                                                    </xs:extension>
                                                </xs:simpleContent>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Property" maxOccurs="unbounded" minOccurs="0">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:string">
                                            <xs:attribute type="xs:string" name="Name" use="optional"/>
                                            <xs:attribute type="xs:string" name="Type" use="optional"/>
                                            <xs:attribute type="xs:string" name="Nullable" use="optional"/>
                                            <xs:attribute type="xs:byte" name="MaxLength" use="optional"/>
                                            <xs:attribute xmlns:sap="http://www.sap.com/Protocols/SAPData" ref="sap:label"/>
                                            <xs:attribute xmlns:sap="http://www.sap.com/Protocols/SAPData" ref="sap:filterable"/>
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                        <xs:attribute type="xs:string" name="Name"/>
                        <xs:attribute xmlns:sap="http://www.sap.com/Protocols/SAPData" ref="sap:content-version"/>
                    </xs:complexType>
                </xs:element>
                <xs:element name="EntityContainer">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="EntitySet">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:string">
                                            <xs:attribute type="xs:string" name="Name"/>
                                            <xs:attribute type="xs:string" name="EntityType"/>
                                            <xs:attribute xmlns:sap="http://www.sap.com/Protocols/SAPData" ref="sap:content-version"/>
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                        <xs:attribute type="xs:string" name="Name"/>
                        <xs:attribute xmlns:met="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" ref="met:IsDefaultEntityContainer"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:attribute type="xs:string" name="Namespace"/>
        </xs:complexType>
    </xs:element>
</xs:schema>

何か案は ?

4

1 に答える 1

2

あなたが提供する XML サンプルには、いくつかの名前空間に要素と属性があります。

XSD スキーマ ドキュメントは、単一のターゲット名前空間のコンポーネント (要素、属性、型) を宣言します。XML ドキュメント内のすべての要素と属性を宣言するには、少なくとも 4 つのスキーマ ドキュメントが必要です。

生成した XSD は、ドキュメントのすべてではなく一部をカバーします ({ http://schemas.microsoft.com/ado/2008/09/edm }スキーマ要素ではなく、{ http://schemasで始まります)。 .microsoft.com/ado/2007/06/edmx }Edmx 要素)、および他の名前空間の xsl:import はありません。簡単な答え: スキーマ ジェネレーターを適切に呼び出していないか、設定しているタスクに対応していません。(1) より機能的なブラックボックス ソリューション、または (2) XSD とその使用法についての理解を深める、またはその両方が必要になる可能性があります。

しかし、短期的には、関連する名前空間はすべて、有能な大規模な技術組織によって定義されます。これらの名前空間に独自のスキーマを作成するのはなぜですか? 名前空間の所有者からこれらの形式を定義する XSD スキーマ ドキュメントを探しましたか?

于 2013-08-12T19:39:54.593 に答える