Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
scalaxb和xsd:选择_Scala_Scalaxb - Fatal编程技术网

scalaxb和xsd:选择

scalaxb和xsd:选择,scala,scalaxb,Scala,Scalaxb,使用 val internalAddrress=内部地址(…);//这很有效。 val地址:地址=内部地址;//错误:类型不匹配 我需要如何修改此代码才能使其正常工作 这里有一些信息,我玩了DataRecord和其他,但我没有让它工作。 你用表达的到底是什么xs:choice声明复杂类型的子元素,该子元素可以是ExternalAddress或InternalAddress。但从Scala代码判断,您可能试图表达一种地址类型,它可以是外部的,也可以是内部的 在这种情况下,复杂类型扩展就是一条出

使用


val internalAddrress=内部地址(…);//这很有效。
val地址:地址=内部地址;//错误:类型不匹配
我需要如何修改此代码才能使其正常工作

这里有一些信息,我玩了DataRecord和其他,但我没有让它工作。
你用
表达的到底是什么
xs:choice
声明复杂类型的子元素,该子元素可以是
ExternalAddress
InternalAddress
。但从Scala代码判断,您可能试图表达一种地址类型,它可以是外部的,也可以是内部的


在这种情况下,复杂类型扩展就是一条出路。有关
USAddress
扩展
Address
的示例,请参阅。这将生成
可寻址
特征,这是
地址
USAddress
的超类型

您用
表达的到底是什么
xs:choice
声明复杂类型的子元素,该子元素可以是
ExternalAddress
InternalAddress
。但从Scala代码判断,您可能试图表达一种地址类型,它可以是外部的,也可以是内部的


在这种情况下,复杂类型扩展就是一条出路。有关
USAddress
扩展
Address
的示例,请参阅。这会生成
可寻址
特征,这是
地址
USAddress
的超类型。问题的表述不正确。 下面是正确的问题和答案:

 <xsd:complexType name="Address">
    <xsd:choice>
      <xsd:element name="externalAddress" type="ExternalAddress" />
      <xsd:element name="internalAddress" type="InternalAddress" />
    </xsd:choice>
  </xsd:complexType>


val internalAddress = InternalAddress(...);  // this works.
val address = Address(scalaxb.DataRecord(None, Some("internalAddress"), internalAddress));  // now this works.

val internalAddress=internalAddress(…);//这很有效。
val address=地址(scalaxb.DataRecord(无,部分(“内部地址”),内部地址));//现在这是可行的。

参见

问题的表述不正确。 下面是正确的问题和答案:

 <xsd:complexType name="Address">
    <xsd:choice>
      <xsd:element name="externalAddress" type="ExternalAddress" />
      <xsd:element name="internalAddress" type="InternalAddress" />
    </xsd:choice>
  </xsd:complexType>


val internalAddress = InternalAddress(...);  // this works.
val address = Address(scalaxb.DataRecord(None, Some("internalAddress"), internalAddress));  // now this works.

val internalAddress=internalAddress(…);//这很有效。
val address=地址(scalaxb.DataRecord(无,部分(“内部地址”),内部地址));//现在这是可行的。

请参见

XSD给了我,我无法修改。XSD给了我,我无法修改。什么是
内部地址
?我对你如何通过
InternalAddress(…)
构建一个应用程序感到困惑。什么是
InternalAddress
?我对您如何通过
InternalAddress(…)
构建一个应用程序感到困惑。