18

elementFormDefault="qualified/unqualified"WSDL (SOAP 1.1、WSDL 1) に埋め込まれた XML スキーマの意味を理解しようとしています。

たとえば、WSDL 内に次のスキーマがあります。

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified"
    targetNamespace="http://www.example.com/library">
    <xsd:element name="person">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="name" type="xsd:string"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>

プレーンな XML では、"name" に名前空間が指定されていないため、これは明らかに無効です。

<lib:person xmlns:lib="http://www.example.com/library">
    <name>XML Schema</name>
</lib:person>

すべての要素が修飾されているため、これは明らかに有効です。

<lib:person xmlns:lib="http://www.example.com/library">
    <lib:name>qualified xml</lib:name>
</lib:person>

しかし驚くべきことに、libxml は以下も有効であると述べています。

<person xmlns="http://www.example.com/library">
    <name>XML Schema</name>
</person>

質問 1 :qualified意味<person>は のように見えるはずだと思い<lib:person xmlns:lib="...">ました。しかし、結果はxmlns属性が同じことを示しているように見えますか?

ここで、上記の XML が SOAP リクエストの一部であると仮定します。

...
<s:Body>
    <person xmlns="http://www.example.com/library">
        <name>XML Schema</name>
    </person>
</s:Body>
...

質問 2qualified : 上記のスキーマが WSDL に含まれている場合、上記の要求は有効ですか? (プレーン SOAP、WS-I 基本プロファイルを無視)

質問 3 WS-I Basic プロファイル (特に4.1.13 SOAP Body and Namespaces ) を考慮すると、上記の要求はまだ有効ですか? ( person「修飾された名前空間」と見なされますか?)

4

1 に答える 1