【问题标题】:php xpath query on imported xsdphp xpath查询导入的xsd
【发布时间】:2014-01-16 11:50:10
【问题描述】:

我有两个 .xsd 文件。在主 xsd (main.xsd) 中,我导入了第二个 xsd (foo.xsd),因此我可以使用在那里定义的类型。见例子:

file:main.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
        attributeFormDefault="unqualified"
        elementFormDefault="qualified"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:foo="Foo"
        >
    <xs:import schemaLocation="foo.xsd" namespace="Foo" />

    <xs:complexType name="someType">
        <xs:sequence>
            <xs:element type="Foo:anElementType" name="someElement" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>

</xs:schema>    


file:foo.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
        targetNamespace="Foo"
        attributeFormDefault="unqualified"
        elementFormDefault="qualified"
        xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:element name="anElement" type="anElementType" />

    <xs:complexType name="anElementType">
        <xs:attribute name="yesOrNo" type="xs:boolean"/>
    </xs:complexType>
</xs:schema>

如何在 main.xsd 上执行 Xpath 查询,以返回 foo.xsd 中的 anElementType 的属性。 目前,我加载 main.xsd 并希望 DOMXPath 知道导入,但这不起作用。我已经用 Google 搜索了一个小时,但没有找到更多建议。

【问题讨论】:

    标签: php xml xpath xsd


    【解决方案1】:

    你不能对一个 XML 文件运行 xpath 查询并期望它从完全不同的 XML 文件返回结果,除非你相信魔法和小精灵。

    【讨论】:

    • 好的,谢谢。在我的无知中,我希望&lt;xs:import 确实会产生某种魔力,特别是因为有一个schemaLocation 属性。可惜。将接受答案并为魔术和小精灵提供奖金+1 ;-)
    • 小精灵总是 +1 ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 2010-09-18
    • 1970-01-01
    相关资源
    最近更新 更多