You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Visual Studio XML编辑器中xmlns属性无法作用于子元素?

问题说明

对比示意图

如图所示,“不可用”和“可用”版本之间,唯一区别是前者所有位置都使用了“this”前缀。

默认命名空间xmlns属性的核心作用不就是避免这类问题吗?我是不是操作有误?

提供的XSD代码

<?xml version="1.0" encoding="utf-8"?>
<xsd:schema
    targetNamespace="Ember.Graphics.OpenGL"
    elementFormDefault="qualified"
    attributeFormDefault="qualified"

    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    
    xmlns="Ember.Graphics.OpenGL"
>
    <xsd:element name="UniformBlock">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="BlockMember" minOccurs="0" maxOccurs="unbounded">
                    <xsd:complexType>
                        <xsd:attribute name="type" use="required" type="Types"/>
                        <xsd:attribute name="name" use="required" type="xsd:string"/>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
            <xsd:attribute name="name" use="required" type="xsd:string"/>
            <xsd:attribute name="instanceName" use="optional" type="xsd:string"/>
            <xsd:attribute name="layout" use="optional" type="xsd:string"/>
        </xsd:complexType>
    </xsd:element>

    <xsd:simpleType name="Types">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="mat4"/>
            <xsd:enumeration value="mat3"/>
            <xsd:enumeration value="vec3"/>
            <xsd:enumeration value="vec4"/>
            <xsd:enumeration value="float"/>
        </xsd:restriction>
    </xsd:simpleType>
</xsd:schema>

“可用”的XML示例(略有修改)

<?xml version="1.0" encoding="utf-8"?>
<x:UniformBlock
    xmlns:x="Ember.Graphics.OpenGL"
>
    <x:BlockMember
        x:type="mat4"
        x:name="WorldToCamera"
    />
</x:UniformBlock>

内容的提问来源于stack exchange,提问作者TheHelpfulHelper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 22:35:27