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
「修飾された名前空間」と見なされますか?)