01spring源码分析-XML Schema

2019-01-28  本文已影响0人  cjxz

在分析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命名空间的标签最常用的是:

<!-- 在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>

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

上一篇下一篇

猜你喜欢

热点阅读