如何在XSD架构中添加采用逗号分隔的字符串值的元素

阿尼班森·乔达里(Anirban Sen Chowdhary)

我是XML模式的新手...我有一个xsd模式文件:-

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.anirban.com/v1"
    xmlns:tns="http://www.anirban.com/v1" elementFormDefault="qualified">

    <complexType name="InputRequest">
        <sequence>
            <element name="Name" maxOccurs="unbounded" type="string">
            </element>
            <element name="Url" type="anyURI" maxOccurs="1" minOccurs="0">
            </element>

            <element name="Employee">
                <complexType>
                    <sequence>
                        <element name="VehicleList" maxOccurs="unbounded" type="string" />
                        <element name="EmployeeName" type="string" default="Anirban" />

                    </sequence>
                </complexType>
            </element>
        </sequence>
    </complexType>


    <complexType name="OutputResponse">
        <sequence>
            <element name="ResponseCode" type="string"></element>
        </sequence>
    </complexType>

    <element name="getInputRequest" type="tns:InputRequest"></element>

    <element name="getOutputResponse" type="tns:OutputResponse"></element>
</schema>

用于创建SOAP请求,例如:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://www.anirban.com/v1">
   <soapenv:Header/>
   <soapenv:Body>
      <v1:getInputRequest>
         <!--1 or more repetitions:-->
         <v1:Name>Abc</v1:Name>
         <v1:Name>Efg</v1:Name>
         <!--Optional:-->
         <v1:Url>http://localhost:8084/test?wsdl</v1:Url>
         <v1:Employee>
            <!--1 or more repetitions:-->
            <v1:VehicleList>ee</v1:VehicleList>
            <v1:VehicleList>ff</v1:VehicleList>
            <v1:EmployeeName>Anirban</v1:EmployeeName>
         </v1:Employee>
      </v1:getInputRequest>
   </soapenv:Body>
</soapenv:Envelope>

现在我的问题是,我想在之间添加一个元素,例如:-<v1:Orders>Ord1,Ord2,Ord3</v1:Orders>将采用逗号分隔的字符串值..那么如何在元素之间添加元素Orders呢?是否可以添加一个元素,该元素将按照complexType的顺序使用逗号分隔的String值请帮忙 ...

CM Sperberg-McQueen

正如holderdarocha所指出的,几乎可以肯定,将元素指定为元素序列会更好:

<v1:Order>Ord1</v1:Order>
<v1:Order>Ord2</v1:Order>
<v1:Order>Ord3</v1:Order>

v1:Orders如果愿意,可以将它们包装在一个元素中。在这样的事情上,不同的人会有不同的品味。

如果由于某种原因,使单个元素具有一系列原子值确实更好(我实际上暂时不相信它会更好,但是许多人需要从痛苦的经历中学到东西,而不是学习(从别人的痛苦经历中学习),那么它将在XSD和相关工具中更好地工作,以使列表用空格分隔:

<v1:Orders>Ord1 Ord2 Ord3</v1:Orders>

这样,可以将Orders元素声明为简单值列表,并且可以针对类型(整数,日期,IDREF,NCName,您选择的正则表达式定义的标记,...)测试各个值。XSD验证器和下游的模式识别软件将看到一系列简单值,而不是一个。

从XSD的角度来看,使其成为逗号分隔的列表是所有可能的解决方案中最糟糕的。XSD列表类型是用空格分隔的,而不是用逗号分隔的(并且无论世界上的Perl爱好者多么喜欢,也不是用任意正则表达式分隔的),因此XSD验证程序和下游模式感知应用程序都看不到一系列值;他们只会看到一个值,而其词法空间受一个长而复杂的(可能是错误的,除非您比普通程序员更好)正则表达式所约束。如果单个标记应表示整数,日期或其他一些XSD简单类型,则不会对其进行类型验证。如果要限制列表的长度,则只能通过用于验证字符串的正则表达式来实现。另一个出错的机会。

另一方面,如果各个标记没有词法约束,并且您确实真的坚持要使用逗号分隔的列表,而不要使用空格分隔的列表,那么您根本不需要做任何工作:只需将Orders元素声明为xsd即可:细绳。由于XSD不会对逗号进行任何特殊处理,因此无需使用任何模式来对逗号进行巧妙处理。由于标记没有词法约束,因此在任何情况下都无法进行模式操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在XSD架构中添加采用逗号分隔的字符串值的元素

来自分类Dev

如何在SQL中添加逗号分隔的字符串

来自分类Dev

如何在值字符串中添加逗号

来自分类Dev

如何扫描字符串中以逗号分隔的元素?

来自分类Dev

如何更新postgresql中逗号分隔字符串的值

来自分类Dev

如何在以逗号分隔的NSMutableString中添加多个字符串

来自分类Dev

如何在 Oracle 中拆分逗号分隔的字符串

来自分类Dev

如何在JavaScript中将循环值传递到用逗号分隔的字符串中

来自分类Dev

如何在 MySQL 中查询以逗号分隔的字符串值?

来自分类Dev

如何在字符串中的数字中添加逗号

来自分类Dev

SQL:如何分隔用逗号分隔的字符串值?

来自分类Dev

列中的Oracle逗号分隔值(ID)。如何获取逗号分隔的字符串中每个值的说明。

来自分类Dev

如何在忽略大括号中的逗号的同时拆分逗号分隔的字符串?

来自分类Dev

如何在SQL中选择列值作为逗号分隔值字符串

来自分类Dev

从jQuery中的select元素生成逗号分隔的字符串

来自分类Dev

如何确保textarea的字符串值用逗号分隔

来自分类Dev

从逗号分隔的字符串javascript中删除空值

来自分类Dev

在React Native中渲染逗号分隔的值字符串

来自分类Dev

在Postgresql中以逗号分隔的值提取子字符串

来自分类Dev

从逗号分隔的字符串javascript中删除空值

来自分类Dev

在以逗号分隔的字符串mysql中查找值

来自分类Dev

从逗号分隔的字符串中检索和使用值

来自分类Dev

从Python中的字符串对象读取逗号分隔的值

来自分类Dev

从逗号分隔的字符串中获取特定值

来自分类Dev

在以逗号分隔的列表中查找字符串值

来自分类Dev

根据逗号分隔的字符串中的值附加HTML

来自分类Dev

逗号分隔的选定值字符串在 MySQL 中水平

来自分类Dev

在 PHP 中传递逗号分隔的字符串值

来自分类Dev

如何将逗号分隔的字符串元素放入 int 数组中?

Related 相关文章

  1. 1

    如何在XSD架构中添加采用逗号分隔的字符串值的元素

  2. 2

    如何在SQL中添加逗号分隔的字符串

  3. 3

    如何在值字符串中添加逗号

  4. 4

    如何扫描字符串中以逗号分隔的元素?

  5. 5

    如何更新postgresql中逗号分隔字符串的值

  6. 6

    如何在以逗号分隔的NSMutableString中添加多个字符串

  7. 7

    如何在 Oracle 中拆分逗号分隔的字符串

  8. 8

    如何在JavaScript中将循环值传递到用逗号分隔的字符串中

  9. 9

    如何在 MySQL 中查询以逗号分隔的字符串值?

  10. 10

    如何在字符串中的数字中添加逗号

  11. 11

    SQL:如何分隔用逗号分隔的字符串值?

  12. 12

    列中的Oracle逗号分隔值(ID)。如何获取逗号分隔的字符串中每个值的说明。

  13. 13

    如何在忽略大括号中的逗号的同时拆分逗号分隔的字符串?

  14. 14

    如何在SQL中选择列值作为逗号分隔值字符串

  15. 15

    从jQuery中的select元素生成逗号分隔的字符串

  16. 16

    如何确保textarea的字符串值用逗号分隔

  17. 17

    从逗号分隔的字符串javascript中删除空值

  18. 18

    在React Native中渲染逗号分隔的值字符串

  19. 19

    在Postgresql中以逗号分隔的值提取子字符串

  20. 20

    从逗号分隔的字符串javascript中删除空值

  21. 21

    在以逗号分隔的字符串mysql中查找值

  22. 22

    从逗号分隔的字符串中检索和使用值

  23. 23

    从Python中的字符串对象读取逗号分隔的值

  24. 24

    从逗号分隔的字符串中获取特定值

  25. 25

    在以逗号分隔的列表中查找字符串值

  26. 26

    根据逗号分隔的字符串中的值附加HTML

  27. 27

    逗号分隔的选定值字符串在 MySQL 中水平

  28. 28

    在 PHP 中传递逗号分隔的字符串值

  29. 29

    如何将逗号分隔的字符串元素放入 int 数组中?

热门标签

归档