精华内容
下载资源
问答
  • xsd

    2018-10-08 08:41:00
    2018-10-08 <xsd:annotation> <xsd:documentation> <![CDATA[ 说明文档 ]]> </xsd:documentation> </xsd:annotation> <xsd:compl...

    2018-10-08

    <xsd:annotation>
        <xsd:documentation>
             <![CDATA[
                 说明文档
             ]]>
        </xsd:documentation>
    </xsd:annotation>

    <xsd:complexType    类型定义,类似于class定义,区别于<xsd:element的元素定义(元素定义就是有<xxx></xxx>)

    <xsd:sequence></xsd:sequence>    要求组中的元素以指定的顺序出现在包含元素中。

    <xsd:choice></xsd:choice>    仅允许包含在 <choice> 声明中的元素之一出现在包含元素中。

    <xsd:simpleType>
        <xsd:restriction base="xsd:NMTOKEN">
            <xsd:enumeration value="default"/>
            <xsd:enumeration value="no"/>
            <xsd:enumeration value="byName"/>
            <xsd:enumeration value="byType"/>
            <xsd:enumeration value="constructor"/>
        </xsd:restriction>
    </xsd:simpleType>

    字符串枚举。

    <xsd:complexContent    空的复合元素不能包含内容,只能含有属性。

     

    转载于:https://www.cnblogs.com/angelshelter/p/9752445.html

    展开全文
  • XSD

    2019-06-10 17:12:10
    XSD是指XML结构定义 ( XML Schemas Definition ) XML Schema 是DTD的替代品。XML Schema语言也就是XSD。 XML Schema描述了XML文档的结构。可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其...

    XSD是指XML结构定义 ( XML Schemas Definition )
    XML Schema 是DTD的替代品。XML Schema语言也就是XSD。
    XML Schema描述了XML文档的结构。可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其要求。文档设计者可以通过XML Schema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。XML Schema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。
    一个XML Schema会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认和固定值。
    XSD是DTD替代者的原因,一是据将来的条件可扩展,二是比DTD丰富和有用,三是用XML书写,四是支持数据类型,五是支持命名空间
    XSD文件的后缀名为.xsd。
    XML Schema的优点:
    1) XML Schema基于XML,没有专门的语法
    2) XML可以象其他XML文件一样解析和处理
    3) XML Schema支持一系列的数据类型(int、float、Boolean、date等)
    4) XML Schema提供可扩充的数据模型。
    5) XML Schema支持综合命名空间
    6) XML Schema支持属性组。

    展开全文
  • dubbo xsd

    2018-06-27 16:12:54
    dubbo-xsd.zip
  • XSD parser

    2020-12-08 22:08:14
    <p>XSD example: - https://geomapfish-demo.camptocamp.net/2.0/wsgi/layers/70/md.xsd - https://geomapfish-demo.camptocamp.net/2.0/wsgi/layers/71/md.xsd</p>该提问来源于开源项目:camptocamp/ngeo...
  • XSD Support

    2021-01-02 11:20:14
    <div><p>The XML Provider is augmented with XSD support as in <a href="https://fsprojects.github.io/FSharp.Data.Xsd/">FSharp.Data.Xsd</a>. An new parameter <code>Schema</code> is added. When this ...
  • xsd support

    2020-12-27 23:51:25
    <div><p>The XML Provider is augmented with XSD support as in <a href="https://fsprojects.github.io/FSharp.Data.Xsd/">FSharp.Data.Xsd</a>. An new parameter <code>Schema</code> is added. When this ...
  • Invalid xsd type: xsd:Array

    2020-12-06 21:29:35
    <p>when it try parse xsd:Array tags of messages, Zeep show me the next error: <pre><code> UserWarning: The wsdl:message for '{URN:XXXXXXX}getFunctionRequest' contains an invalid part ('...
  • xsd:choice是一种较为常见的XML构造。 但是,将xsd:choice映射到编程语言并不总是那么简单。 例如,JAX-RPC规范定义的Web服务的Java映射没有提供从xsd:choice到Java的显式映射。 每当JAX-RPC代码生成器在类型定义中...

    xsd 两个xsd整合

    xsd:choice是一种较为常见的XML构造。 但是,将xsd:choice映射到编程语言并不总是那么简单。 例如,JAX-RPC规范定义的Web服务的Java映射没有提供从xsd:choice到Java的显式映射。 每当JAX-RPC代码生成器在类型定义中遇到xsd:choice时,它都会将该类型映射到javax.xml.soap.SOAPElement SOAPElement是SAAJ API的一部分,它不是一个非常用户友好的API。

    您可以采取一些措施以获得更好的API。 如果您能够更改XML模式,一个不错的选择是用多态替换xsd:choice

    比较xsd:choice和多态

    多态性的意思是“许多形状”。 例如,可以使用基本类型声明方法参数。 调用该方法时,该参数的实例是该类型的特定扩展。

    您可以类似地描述xsd:choice 可以使用描述所有可能选择的类型声明方法参数。 调用该方法时,该参数的实例将包含特定的选择。

    实际的单词是不同的,但是它们的含义本质上是相同的。

    将简单的xsd:choice类型映射为多态类型

    要将典型选择类型转换为一组多态类型,需要在给定选择类型C下执行以下操作,其中包含选择c1..cn:

    1. 构建包含C的那些元素(不是选择元素)的抽象类型P
    2. 对于c1..cn中的每个c,构建E of P的扩展类型E of P其中包含c的元素。

    用示例理解概念总是比较容易的。 看一下付款选项的声明。 清单1是选择类型。 清单2是对一组多态类型的转换。

    清单1.选择付款
    <complexType name="Payment">
      <sequence>
        <element name="amount" type="int"/>
        <choice>
          <element name="cash" nillable="true" type="string"/>
          <element name="check" type="tns:Check"/>
          <element name="credit" type="tns:Credit"/>
        </choice>
      </sequence>
    </complexType>
    
    <complexType name="Check">
      <sequence>
        <element name="checkNo" type="int"/>
      </sequence>
    </complexType>
    <complexType name="Credit">
      <sequence>
        <element name="cardNo" type="string"/>
        <element name="expiration" type="date"/>
      </sequence>
    </complexType>
    清单2.多态支付
    <complexType abstract="true" name="Payment">
      <sequence>
        <element name="amount" type="int"/>
      </sequence>
    </complexType>
    
    <complexType name="CashPayment">
      <complexContent>
        <extension base="tns:Payment">
          <sequence>
            <element name="cash" nillable="true" type="string"/>
          </sequence>
        </extension>
      </complexContent>
    </complexType>
    
    <complexType name="CheckPayment">
      <complexContent>
        <extension base="tns:Payment">
          <sequence>
            <element name="check" type="tns:Check"/>
          </sequence>
        </extension>
      </complexContent>
    </complexType>
    
    <complexType name="CreditPayment">
      <complexContent>
        <extension base="tns:Payment">
          <sequence>
            <element name="credit" type="tns:Credit"/>
          </sequence>
        </extension>
      </complexContent>
    </complexType>

    多态支付示例比选择支付示例更为冗长。 这是因为XML并不是真正的面向对象的语言,并且将面向对象的功能应用于它并不是一件容易的事。 但这不应该阻止您。 您很可能会将XML映射到编程语言。 作为使用该特定编程语言的开发人员,您无需关心XML模式的外观。 您只需要关心该模式的语言映射是什么样。

    唯一需要关心XML模式外观的时间是当您想要进行性能分析时。 例如,如果此架构是Web服务的一部分,则要比较这些类型的简单对象访问协议(SOAP)消息,以确定消息大小本身是否影响性能。 因此,让我们比较这两个变体的实例。 例如,假设我们希望以支票(1050号)付款,金额为10美元。 清单3显示了选择示例,清单4显示了多态示例。 (请注意,为了简化此示例,我忽略了名称空间和前缀。)

    清单3.选择付款实例
    <payment>
      <amount>10</amount>
      <check>
        <checkNo>1050</checkNo>
      </check>
    </payment>
    清单4.多态支付实例
    <payment xsi:type="CheckPayment">
      <amount>10</amount>
      <check>
        <checkNo>1050</checkNo>
      </check>
    </payment>

    如您所见,清单4和清单5之间的唯一区别是多态实例包含类型信息。 尽管这值得注意,但通常并不重要。 实际上,它可以潜在地简化SOAP引擎的处理,因为该引擎从一开始就知道类型是什么,并预先选择了合适的反序列化器,而不必解析实例并检查choice元素的名称- -在这种情况下, check -确定类型。

    因此,使用多态替代并不比选择替代昂贵得多,它可以为您提供更加友好的语言映射。

    映射xsd:choice maxOccurs大于1的xsd:choice

    绝大多数选择方案与上面显示的简单情况相似。 但choice 可能具有maxOccurs属性大于1 映射是相似的,但是您需要一个额外的层来处理这种新类型的新数组方面。

    1. 建立一个空的抽象类型P
    2. 用类型为P的元素替换C中的选择,并携带从选择到新元素的maxOccurs属性。
    3. 对于c1..cn中的每个c,构建P的扩展类型E ,其中包含c的元素。

    例如,修改清单1中的Payment类型,以在选择项上包含maxOccurs="unbounded"属性。 (请参见清单5,其中的附加内容以粗体突出显示。)

    (此类型的意思是一个人可以使用多种付款方式进行单笔付款:部分现金,部分支票,部分信用卡或任何组合。)

    清单5.具有maxOccurs选择付款
    <complexType name="Payment">
      <sequence>
        <element name="amount" type="int"/>
        <choice maxOccurs="unbounded">
          <element name="cash" nillable="true" type="string"/>
          <element name="check" type="tns:Check"/>
          <element name="credit" type="tns:Credit"/>
        </choice>
      </sequence>
    </complexType>

    清单6显示了转换后的多态类型集。 清单2中的更改以粗体突出显示。

    清单6. maxOccurs多态支付
    <complexType name="Payment">
      <sequence>
        <element name="amount" type="int"/>
        <element name="option" type="PaymentOption" maxOccurs="unbounded"/>
      </sequence>
    </complexType>
    
    <complexType abstract="true" name="PaymentOption">
      <sequence/>
    </complexType>
    
    
    <complexType name="CashPayment">
      <complexContent>
        <extension base="tns:PaymentOption">
          <sequence>
            <element name="cash" nillable="true" type="string"/>
          </sequence>
        </extension>
      </complexContent>
    </complexType>
    
    <complexType name="CheckPayment">
      <complexContent>
        <extension base="tns:PaymentOption">
          <sequence>
            <element name="check" type="tns:Check"/>
          </sequence>
        </extension>
      </complexContent>
    </complexType>
    
    <complexType name="CreditPayment">
      <complexContent>
        <extension base="tns:PaymentOption">
          <sequence>
            <element name="credit" type="tns:Credit"/>
          </sequence>
        </extension>
      </complexContent>
    </complexType>

    请注意, PaymentOption类型没有自己的字段。 可能看起来有些奇怪,但是没有任何问题。 这是一种抽象类型,因此PaymentOption实例将永远不存在。 只有它的扩展名可以存在。

    请注意,您还可以应用maxOccurs规则来转换典型选择示例。 但是,我希望您能看到简化的规则对典型情况的好处:您可以处理的间接层少了,类型少了一种。

    多态性优于xsd:choice优势

    xsd:choice相比,多态有两个主要优点xsd:choice :可扩展性和类型指示。

    可扩展性

    就其性质而言,多态类型是可扩展的。 您可以根据需要选择任意数量的抽象基本类型扩展名,具体取决于您是否出于组织目的将这些扩展名扩展到多个.xsd文件中(一个组织可能仅接受现金和支票;另一个组织可能仅接受信用卡和在线支付)或者是否随着时间的推移添加新的。

    但是xsd:choice本身是不可扩展的。 如果要随时间添加选择,或者要在不同的.xsd文件中选择不同的选择集,则要么将所有可能的选择都定义为一个整体类型,然后让代码担心每种情况下可用的内容,要么您有很多选择包含相同选择选项的类型。 这些选项都不是特别可靠。 确实可以扩展选择类型并向扩展类型添加选择,但是为什么不进行全面的跨越并完全遵循多态模式,从而删除所有xsd:choice用法?

    类型指示

    在此付款示例中,选择之一是cash 您是否注意到这似乎是一个定义很奇怪的选择? 除了金额外,您还需要了解现金吗? 没有。 这就是为什么添加了属性nillable="true"原因; 您可以给cash元素一些价值,但这将毫无意义。 现金支付的实例可能类似于清单7。

    清单7.选择付款现金实例
    <payment>
      <amount>10</amount>
      <cash xsi:isNil="true"/>
    </payment>

    您在这里只想说的是现金付款。 但是,在没有选择的情况下,没有办法表明这一点。

    在清单2的CashPayment类型中,我随身携带了cash元素,因为我只是应用了转换规则,但实际上并不需要它。 您所需要的只是表明这是一种现金类型,仅此而已,并且由于多态性而已。 因此CashPayment选项将扩展Payment类型,但不添加任何新内容。 清单8显示了CashPayment类型的改进版本。 清单9显示了这种类型的实例。

    清单8.改进的多态CashPayment
    <complexType name="CashPayment">
      <complexContent>
        <extension base="tns:Payment">
          <sequence/>
        </extension>
      </complexContent>
    </complexType>
    清单9.多态支付现金实例
    <payment xsi:type="CashPayment">
      <amount>10</amount>
    </payment>

    摘要

    在某些情况下, xsd:choice类型不是要使用的最佳类型。 例如,当使用JAX-RPC映射规则将choice类型映射到Java语言时,最终会得到Java映射,这不是非常用户友好的。 如果可以控制架构,则可能需要将包含xsd:choice的类型转换为一组多态类型。 您不仅会得到一个更加用户友好的映射,而且多态性比xsd:choice更健壮。


    翻译自: https://www.ibm.com/developerworks/xml/library/ws-tip-xsdchoice/index.html

    xsd 两个xsd整合

    展开全文
  • ehcache.xsd

    2020-07-27 11:18:20
    在springboot上配置ehcache时用到的xld文件,在编写xml时会报找不到ehcache.xsd文件,把这个文件放到resources目录底下即可
  • XSD-1 XSD Schema 概述

    2020-02-14 21:09:53
    8 认识 Java 对象树与 XSD Schema 的关联8 认识 Java 对象树与 XSD 限定8.1 节点元素与属性的限定8.2 对值的限定8.2.1 对数值(xs:integer)的限定8.2.2 对字符串(xs:string)的限定8.2.3 日期类型8.2.4 对复杂类型的...

    1 XSD Schema 概述

    XML Schema 是基于 XML 的 DTD 替代者。

    XML Schema 描述 XML 文档的结构。
    XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。


    XML Schema:

    • 定义可出现在文档中的元素
    • 定义可出现在文档中的属性
    • 定义哪个元素是子元素
    • 定义子元素的次序
    • 定义子元素的数目
    • 定义元素是否为空,或者是否可包含文本
    • 定义元素和属性的数据类型
    • 定义元素和属性的默认值以及固定值

    XML Schema 是 DTD 的继任者
    以下是 XML Schema 相对于 DTD 的优势

    • XML Schema 可针对未来的需求进行扩展
    • XML Schema 更完善,功能更强大
    • XML Schema 基于 XML 编写
    • XML Schema 支持数据类型
    • XML Schema 支持命名空间

    XML Schema 支持数据类型
    XML Schema 最重要的能力之一就是对数据类型的支持。

    通过对数据类型的支持:

    • 可更容易地描述允许的文档内容
    • 可更容易地验证数据的正确性
    • 可更容易地与来自数据库的数据一并工作
    • 可更容易地定义数据约束(data facets)
    • 可更容易地定义数据模型(或称数据格式)
    • 可更容易地在不同的数据类型间转换数据

    XML Schema 使用 XML 语法
    另一个关于 XML Schema 的重要特性是,它们由 XML 编写。

    由 XML 编写 XML Schema 有很多好处:

    • 不必学习新的语言
    • 可使用 XML 编辑器来编辑 Schema 文件
    • 可使用 XML 解析器来解析 Schema 文件
    • 可通过 XML DOM 来处理 Schema
    • 可通过 XSLT 来转换 Schema

    XML Schema 可保护数据通信
    当数据从发送方被发送到接受方时,其要点是双方应有关于内容的相同的“期望值”。
    通过 XML Schema,发送方可以用一种接受方能够明白的方式来描述数据。

    一种数据,比如 “03-11-2004”,在某些国家被解释为11月3日,而在另一些国家为当作3月11日。

    但是一个带有数据类型的 XML 元素,比如:2004-03-11,可确保对内容一致的理解,这是因为 XML 的数据类型 “date” 要求的格式是 “YYYY-MM-DD”。


    XML Schema 可扩展
    XML Schema 是可扩展的,因为它们由 XML 编写。

    通过可扩展的 Schema 定义,您可以:

    • 在其他 Schema 中重复使用您的 Schema
    • 创建由标准类型衍生而来的您自己的数据类型
    • 在相同的文档中引用多重的 Schema

    形式良好是不够的
    我们把符合 XML 语法的文档称为形式良好的 XML 文档,比如:

    • 它必须以 XML 声明开头
    • 它必须拥有唯一的根元素
    • 开始标签必须与结束标签相匹配
    • 元素对大小写敏感
    • 所有的元素都必须关闭
    • 所有的元素都必须正确地嵌套
    • 必须对特殊字符使用实体

    即使文档的形式良好,仍然不能保证它们不会包含错误,并且这些错误可能会产生严重的后果。

    请考虑下面的情况:您订购的了 5 打激光打印机,而不是 5 台。通过 XML Schema,大部分这样的错误会被您的验证软件捕获到。

    学习 XSD Schema

    目的:使用 XSD Schema 验证 XML 文档
    工具:IntelliJ IDEA
    参考:Schema 中文教程,https://www.w3school.com.cn/schema/index.asp
    里程碑:
    1、学习 XSD Schema 的简单类型
    2、学习 XSD Schema 的基础数据类型
    3、学习 XSD Schema 的复杂类型
    备注:
    从简单类型的学习出发,了解 Schema 的组织结构和 xs:element 与 xs:attribute 标签的使用;
    从基础数据类型出发,了解 Schema 支持的数据类型与相关的限定;
    从复杂类型出发,了解 Schema 解决复杂应用场景的方案。


    上一章:无
    目录:学习 JAXB
    下一章:XSD-2 对 XML 进行 XSD 建模


    展开全文
  • XSD实例

    2019-10-04 19:58:17
    本文仅给出一个简单的XSD和相关联的XML,不做任何解释,对XSD的解释请参考其它文档。 由Microsoft开发的一种用来定于XML文档的模式,称为XML模式定义语言(XML SChema Definition),简称XSD. 如果你是从DTD学起,那么...
  • XSD语法

    千次阅读 2018-05-30 18:42:55
    最近给公司的一个快速开发框架的XML配置文件编写XSD,其中借鉴了Springde的XSD编写格式。正好也乘机对XSD做一次贴合实际的认知。
  • <p>The reference to <code>taskMod.xsd</code> should be versioned as with all other references in the schema files. <h2>Actual Behavior <p>It references <code>taskMod.xsd</code> without version ...
  • xsd生成javaBean

    2018-12-13 16:37:22
    根据xsd文件一键生成javaBean,无需引用任何其他配置,所有依赖jar包已经完整提供
  • 本文简单介绍使用java语言,通过XSD文件来校验XML文件结构。XML和XSD介绍MySQL数据迁移和项目魔法计算器都用到了XML文件,这样可以解耦出配置属性,使项目更加灵活,不用动不动就去改动代码。描述一个XML文件的结构...
  • xsd文件

    2020-02-12 17:33:30
    XSD是指XML结构定义 ( XML Schemas Definition ) XML Schema 是DTD的替代品。XML Schema语言也就是XSD。 XML Schema描述了XML文档的结构。可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其...
  • dubbo xsd 文件

    2015-03-19 21:56:04
    dubbo xsd 文件
  • xsd2php 将XSD转换为PHP类。 使用goetas-webservices/xsd2php您可以将任何XSD / WSDL定义转换为PHP类。 XSD2PHP还可以生成与兼容的元数据,该元数据可用于序列化/反序列化对象实例。 安装 有一种推荐的方法可以...
  • <div><p>this PR (#201) - adds a test whether every element of "xsd/metric.xsd"...- adds the xsd:documentation to xsd/metric.xsd</p><p>该提问来源于开源项目:cqfn/jpeek</p></div>
  • 下面讲述根据xml生成对应序列化反序列化类的过程,xml需要首先转化为xsd,然后再生成为实体类。其中,XSD是XML Schema Definition的缩写。1.拥有一个xml文件2.打开vs的command line:xsd *.xml ,执行这个命令 是...
  • xml生成xsd

    2017-11-30 16:30:13
    可以通过xml生成想要的xsd文件。减少开发人员的时间浪费,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,625
精华内容 7,450
关键字:

xsd