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(…)
构建一个应用程序感到困惑。