我正在将xsd转换为avro模式
XSD片段:
<xsd:element name="roleNotesGroup">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="roleNotesSubGroup" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="roleNotesGroup" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="roleNotes" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:appinfo>
<source application="CUSTOMER" field="REL.CUSTOMER"/>
<fieldPiiAttribute value="INDIRECT"/>
<fieldPiiPurpose value="LEGITIMATE"/>
<fieldPiiEraseOption value="NO.ACTION"/>
<fieldPiiAccessibility value="ACCESS PORTABLE"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="index" type="xsd:integer"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="index" type="xsd:integer"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="index" type="xsd:integer"/>
</xsd:complexType>
</xsd:element>
我正在使用
Schema schema = Schema.createRecord(name, null, null, false);
创建avro架构记录。在上面的xsd中,roleNotesGroup是roleNotesSubGroup的子级,而roleNotesGroup又是roleNotesGroup的子级。我可以递归地获取avro模式,直到roleNotesSubGroup,然后将它转换为list。
List<Schema.Field> is obtained recursively.
现在的问题是,当我尝试将形成的字段添加到 head 元素 roleNotesGroup 使用
Schema schema = Schema.createRecord(name, null, null, false);
schema.setFields(schemaFields);
我得到以下错误:SchemaParseException:无法重新定义角色NotesGroup
在avro或avro转换中是否有任何限制,即相同的名称不应再次出现?
得到了阿帕奇吉拉的回答。解决方案是对重复出现的元素使用不同的名称空间(apache建议),或者使用别名(适合我)。
https://issues.apache.org/jira/browse/AVRO-2809
我的customer.xsd如下所示。我正试图将它转换为pojo类schema_reference.4:未能读取模式文档“xml.xsd”,因为 1)找不到文件; 2)文件无法阅读; 3)文档的根元素不是。 我正在使用maven将XSD转换为Java clases。
我试图构建一个系统,从Kafka读取json数据(无模式),将其转换为avro并将其推送到s3。 我已经能够使用kstream和KSQL实现json到avro的转换。我想知道使用Kafka Connect的自定义转换是否可以实现同样的效果。 这是我迄今为止所尝试的: 其中avro_schema是avsc文件中指定的架构名称。 我不确定这是否是正确的方法,但我面临的问题是,当调用newRecord(
我想把一组复杂的xsd文件转换成Java/Hibernate实体。为此,我从这个链接下载了JAXB的2.2.7版本。解压文件,打开cmd.exe,导航到create-marshal示例的目录,运行ant compile以确认一切正常,然后运行ant clean以消除结果,将一切返回到启动条件。 当我试图使用不同的xsd文件作为create-marshal示例的输入时,问题出现了。具体地说,当xsd
我为jsf创建了一个自定义转换器。getAsObject()工作正常,但getAsString()返回异常。我不确定问题出在哪里,我尝试过用不同的方式将对象转换为字符串,但它不断返回异常。 这是我的代码: 这是Product类(为简单起见排除了getter/Setters/equals()/hash()): 这是stack我得到的: 这是我使用转换器的jsf:
无法使用ByteBuddy重新定义java.io.ObjectInputStream。 我已经尝试了很多方法来解决这个问题。但我找不到钩住“java.io.ObjectInputStream$resolveClass”的方法。你能帮助我吗?
我有以下问题: 当使用 dplyr 在 group_by() 之后改变数字列时,如果一行只包含一个值,即使用 mutate 命令时的 NaN,则此值将失败。 因此,如果分组列包含数字,它将正确地分类为dbl,但只要一个组只有一个NaN实例,它就会失败,因为dplyr将该组定义为lgl,而所有其他组都是dbl。 我的第一个(也是更一般的问题)是:当使用group_by()时,有没有一种方法告诉dpl