美文网首页
01spring源码分析-XML Schema

01spring源码分析-XML Schema

作者: cjxz | 来源:发表于2019-01-28 16:19 被阅读0次

    在分析spring和dubbo服务端相关联的时候分析到dubbo里面的ServiceBean这个对象是如何被spring创造出来的?通过我的多方查找最后发现ServiceBean的来源是xml解析的过程中获得的。在dubbo配置文件的命名空间声明时有这么一段

    http://code.alibabatech.com/schema/dubbo
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd
    

    上面的dubbo.xsd就是我们这里要学习的XML Schema,今天我们只针对dubbo.xsd文件分析XML Schema具体细节大家可以自行参考XML Schema 教程首先可以看一下所有的元素都被包含在<xsd:schema>标签里面,然后是xmlns:xsd="http://www.w3.org/2001/XMLSchema"这句的意思是使用w3里面的XMLSchema标签,并且使用命名空间为xsd也就是如果需要使用XMLSchema里面的标签需要加上xsd例如:

    <xsd:complexType name="abstractServiceType">
            <xsd:complexContent>
                <xsd:extension base="abstractInterfaceType">
                    <xsd:attribute name="register" type="xsd:string">
                        <xsd:annotation>
                            <xsd:documentation><![CDATA[ The service can be register to registry. ]]></xsd:documentation>
                        </xsd:annotation>
                    </xsd:attribute>
    

    在dubbo.xsd文件中使用XML Schema命名空间的标签最常用的是:

    • xsd:complexType:表示自定义了一个复合类型,这个复合类型可以被其他的attribute使用
    • xsd:complexContent:表示定义的复合类型里面的内容是什么
    • xsd:attribute:定义一个属性,这个属性有name和type。其中type可以是XMLSchema里面的基本类型(String,int)也可以是我们自定义的复合类型。
    • xsd:element 定义一个元素,一般包含name和type,name表示在使用当前dubbo.xsd的xml文件里面使用的标签名称。例如
    <!-- 在dubbo消费端暴露的服务 -->
    <dubbo:service interface="com.order.OrderService" ref="orderService" timeout="5000" />
    <!-- 在dubbo.xsd文件中定义的命名空间 -->
        <xsd:element name="service" type="serviceType">
            <xsd:annotation>
                <xsd:documentation><![CDATA[ Export service config ]]></xsd:documentation>
                <xsd:appinfo>
                    <tool:annotation>
                        <tool:exports type="org.apache.dubbo.config.ServiceConfig"/>
                    </tool:annotation>
                </xsd:appinfo>
            </xsd:annotation>
        </xsd:element>
    

    定义的复合类型的作用是什么了?

    • 规范了我们使用标签的名字和里面的各种属性
    • 可以通过spring来帮我们扩展namespace

    相关文章

      网友评论

          本文标题:01spring源码分析-XML Schema

          本文链接:https://www.haomeiwen.com/subject/ehgajqtx.html