Python Pyxb在循环中生成多个复杂类型
我有一个数据结构,其中某个复杂类型的值(我们称之为Python Pyxb在循环中生成多个复杂类型,python,xml,xsd,complextype,pyxb,Python,Xml,Xsd,Complextype,Pyxb,我有一个数据结构,其中某个复杂类型的值(我们称之为myComplexType)存储在一个列表中myComplexType位于另一个复杂类型(称为complexType1)下,该复杂类型位于“根”下,即(RootName->complexType1->myComplexType) 我试图创建一个循环,在这个循环中,我从读取数据文件中收集的值将填充这个复杂类型。但是,此复杂类型的最小出现次数为1,最大出现次数为4 我的代码是这样的: root = module.RootName(): for a,b
myComplexType
)存储在一个列表中myComplexType
位于另一个复杂类型(称为complexType1
)下,该复杂类型位于“根”下,即(RootName->complexType1->myComplexType
)
我试图创建一个循环,在这个循环中,我从读取数据文件中收集的值将填充这个复杂类型。但是,此复杂类型的最小出现次数为1,最大出现次数为4
我的代码是这样的:
root = module.RootName():
for a,b,c,d,e,f,g,h in zip(A,B,C,D,E,F,G,H):
for d1,e1,f1 in zip(d,e,f):
root.complexType1_name.append(module.complexType1(a,b,c,(myComplexType(d1,e1,f1))),g,h)
<Root>
<complexType1>
<A_value> 1 </A_value>
<B_value> Blue </B_value>
<C_value> cat </C_value>
<myComplexType>
<D_value> 0 <D_value>
<E_value> Red <E_value>
<F_value> True <F_value>
</myComplexType>
<myComplexType>
<D_value> 1 <D_value>
<E_value> Blue <E_value>
<F_value> False <F_value>
</myComplexType>
<G_value> 0 <G_value>
<H_value> 1 <H_value>
</complexType1>
<complexType1>
<A_value> 2 </A_value>
<B_value> Red </B_value>
<C_value> dog </C_value>
<myComplexType>
<D_value> 0 <D_value>
<E_value> Yellow <E_value>
<F_value> False <F_value>
</myComplexType>
<G_value> 0 <G_value>
<H_value> 0 <H_value>
</complexType1>
<complexType1>
<A_value> 3 </A_value>
<B_value> Orange </B_value>
<C_value> mouse </C_value>
<myComplexType>
<D_value> 1 <D_value>
<E_value> Orange <E_value>
<F_value> False <F_value>
</myComplexType>
<myComplexType>
<D_value> 12 <D_value>
<E_value> Black <E_value>
<F_value> True <F_value>
</myComplexType>
<myComplexType>
<D_value> 1 <D_value>
<E_value> Red <E_value>
<F_value> False <F_value>
</myComplexType>
<myComplexType>
<D_value> 2 <D_value>
<E_value> White <E_value>
<F_value> False <F_value>
</myComplexType>
<G_value> 1 <G_value>
<H_value> 0 <H_value>
</complexType1>
<complexType1>
<A_value> 4 </A_value>
<B_value> Yellow </B_value>
<C_value> bird </C_value>
<myComplexType>
<D_value> 2 <D_value>
<E_value> Blue <E_value>
<F_value> True <F_value>
</myComplexType>
<myComplexType>
<D_value> 0 <D_value>
<E_value> Green <E_value>
<F_value> True <F_value>
</myComplexType>
<myComplexType>
<D_value> 4 <D_value>
<E_value> Violet <E_value>
<F_value> False <F_value>
</myComplexType>
<G_value> 0 <G_value>
<H_value> 1 <H_value>
如何创建myComplexType的“n”编号,其中“n”是嵌套列表d、e、f的长度
进一步澄清:
A = [1,2,3,4]
B = [Blue,Red,Orange,Yellow]
C = ['cat', 'dog', 'mouse', 'bird']
D = [[0,1],[0],[1,12,1,2],[2,0,4]]
E = [[Red,Blue],[Yellow],[Orange,Black,Red,White],[Blue,Green,Violet]]
F = [[True,False],[False],[False,True,False,False],[True,True,False]]
G = [0,0,1,0]
H = [1,0,1,1]
我需要这样的东西:
root = module.RootName():
for a,b,c,d,e,f,g,h in zip(A,B,C,D,E,F,G,H):
for d1,e1,f1 in zip(d,e,f):
root.complexType1_name.append(module.complexType1(a,b,c,(myComplexType(d1,e1,f1))),g,h)
<Root>
<complexType1>
<A_value> 1 </A_value>
<B_value> Blue </B_value>
<C_value> cat </C_value>
<myComplexType>
<D_value> 0 <D_value>
<E_value> Red <E_value>
<F_value> True <F_value>
</myComplexType>
<myComplexType>
<D_value> 1 <D_value>
<E_value> Blue <E_value>
<F_value> False <F_value>
</myComplexType>
<G_value> 0 <G_value>
<H_value> 1 <H_value>
</complexType1>
<complexType1>
<A_value> 2 </A_value>
<B_value> Red </B_value>
<C_value> dog </C_value>
<myComplexType>
<D_value> 0 <D_value>
<E_value> Yellow <E_value>
<F_value> False <F_value>
</myComplexType>
<G_value> 0 <G_value>
<H_value> 0 <H_value>
</complexType1>
<complexType1>
<A_value> 3 </A_value>
<B_value> Orange </B_value>
<C_value> mouse </C_value>
<myComplexType>
<D_value> 1 <D_value>
<E_value> Orange <E_value>
<F_value> False <F_value>
</myComplexType>
<myComplexType>
<D_value> 12 <D_value>
<E_value> Black <E_value>
<F_value> True <F_value>
</myComplexType>
<myComplexType>
<D_value> 1 <D_value>
<E_value> Red <E_value>
<F_value> False <F_value>
</myComplexType>
<myComplexType>
<D_value> 2 <D_value>
<E_value> White <E_value>
<F_value> False <F_value>
</myComplexType>
<G_value> 1 <G_value>
<H_value> 0 <H_value>
</complexType1>
<complexType1>
<A_value> 4 </A_value>
<B_value> Yellow </B_value>
<C_value> bird </C_value>
<myComplexType>
<D_value> 2 <D_value>
<E_value> Blue <E_value>
<F_value> True <F_value>
</myComplexType>
<myComplexType>
<D_value> 0 <D_value>
<E_value> Green <E_value>
<F_value> True <F_value>
</myComplexType>
<myComplexType>
<D_value> 4 <D_value>
<E_value> Violet <E_value>
<F_value> False <F_value>
</myComplexType>
<G_value> 0 <G_value>
<H_value> 1 <H_value>
1.
蓝色
猫
0
红色
真的
1.
蓝色
假的
0
1.
2.
红色
狗
0
黄色的
假的
0
0
3.
橙色
老鼠
1.
橙色
假的
12
黑色
真的
1.
红色
假的
2.
白色
假的
1.
0
4.
黄色的
鸟
2.
蓝色
真的
0
绿色
真的
4.
紫罗兰色
假的
0
1.
有人能告诉我如何为我的循环中的每个迭代/complexType1
轻松创建一个“n”数的myComplexType
(基于嵌套循环的长度d、e、f)
如果有任何混淆,请告诉我,以便我尝试进一步澄清
提前感谢。请不要同时在多个论坛上问同一个问题。这是我在网上提供的 模式:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="ct1_t">
<xs:sequence>
<xs:element name="A_value" type="xs:integer"/>
<xs:element name="B_value" type="xs:string"/>
<xs:element name="C_value" type="xs:string"/>
<xs:element ref="myComplexType" minOccurs="1" maxOccurs="4"/>
<xs:element name="G_value" type="xs:integer"/>
<xs:element name="H_value" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
<xs:element name="myComplexType" type="mct_t"/>
<xs:complexType name="mct_t">
<xs:sequence>
<xs:element name="D_value" type="xs:integer"/>
<xs:element name="E_value" type="xs:string"/>
<xs:element name="F_value" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
<xs:element name="complexType1" type="ct1_t"/>
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element ref="complexType1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
节目:
import mmod
Blue = 'Blue'
Red = 'Red'
Orange = 'Orange'
Yellow = 'Yellow'
Black = 'Black'
White = 'White'
Green = 'Green'
Violet = 'Violet'
A = [1,2,3,4]
B = [Blue,Red,Orange,Yellow]
C = ['cat', 'dog', 'mouse', 'bird']
D = [[0,1],[0],[1,12,1,2],[2,0,4]]
E = [[Red,Blue],[Yellow],[Orange,Black,Red,White],[Blue,Green,Violet]]
F = [[True,False],[False],[False,True,False,False],[True,True,False]]
G = [0,0,1,0]
H = [1,0,1,1]
root = mmod.Root()
for a,b,c,d,e,f,g,h in zip(A,B,C,D,E,F,G,H):
ct1 = mmod.complexType1(a, b, c)
for d1,e1,f1 in zip(d,e,f):
ct1.append(mmod.myComplexType(d1, e1, f1))
ct1.append(g);
ct1.append(h);
root.complexType1.append(ct1)
print root.toDOM().toprettyxml();
输出:
<?xml version="1.0" ?>
<Root>
<complexType1>
<A_value>1</A_value>
<B_value>Blue</B_value>
<C_value>cat</C_value>
<myComplexType>
<D_value>0</D_value>
<E_value>Red</E_value>
<F_value>true</F_value>
</myComplexType>
<myComplexType>
<D_value>1</D_value>
<E_value>Blue</E_value>
<F_value>false</F_value>
</myComplexType>
<G_value>0</G_value>
<H_value>1</H_value>
</complexType1>
<complexType1>
<A_value>2</A_value>
<B_value>Red</B_value>
<C_value>dog</C_value>
<myComplexType>
<D_value>0</D_value>
<E_value>Yellow</E_value>
<F_value>false</F_value>
</myComplexType>
<G_value>0</G_value>
<H_value>0</H_value>
</complexType1>
<complexType1>
<A_value>3</A_value>
<B_value>Orange</B_value>
<C_value>mouse</C_value>
<myComplexType>
<D_value>1</D_value>
<E_value>Orange</E_value>
<F_value>false</F_value>
</myComplexType>
<myComplexType>
<D_value>12</D_value>
<E_value>Black</E_value>
<F_value>true</F_value>
</myComplexType>
<myComplexType>
<D_value>1</D_value>
<E_value>Red</E_value>
<F_value>false</F_value>
</myComplexType>
<myComplexType>
<D_value>2</D_value>
<E_value>White</E_value>
<F_value>false</F_value>
</myComplexType>
<G_value>1</G_value>
<H_value>1</H_value>
</complexType1>
<complexType1>
<A_value>4</A_value>
<B_value>Yellow</B_value>
<C_value>bird</C_value>
<myComplexType>
<D_value>2</D_value>
<E_value>Blue</E_value>
<F_value>true</F_value>
</myComplexType>
<myComplexType>
<D_value>0</D_value>
<E_value>Green</E_value>
<F_value>true</F_value>
</myComplexType>
<myComplexType>
<D_value>4</D_value>
<E_value>Violet</E_value>
<F_value>false</F_value>
</myComplexType>
<G_value>0</G_value>
<H_value>1</H_value>
</complexType1>
</Root>
1.
蓝色
猫
0
红色
真的
1.
蓝色
假的
0
1.
2.
红色
狗
0
黄色的
假的
0
0
3.
橙色
老鼠
1.
橙色
假的
12
黑色
真的
1.
红色
假的
2.
白色
假的
1.
1.
4.
黄色的
鸟
2.
蓝色
真的
0
绿色
真的
4.
紫罗兰色
假的
0
1.
请不要同时在多个论坛上问同一个问题。这是我在网上提供的
模式:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="ct1_t">
<xs:sequence>
<xs:element name="A_value" type="xs:integer"/>
<xs:element name="B_value" type="xs:string"/>
<xs:element name="C_value" type="xs:string"/>
<xs:element ref="myComplexType" minOccurs="1" maxOccurs="4"/>
<xs:element name="G_value" type="xs:integer"/>
<xs:element name="H_value" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
<xs:element name="myComplexType" type="mct_t"/>
<xs:complexType name="mct_t">
<xs:sequence>
<xs:element name="D_value" type="xs:integer"/>
<xs:element name="E_value" type="xs:string"/>
<xs:element name="F_value" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
<xs:element name="complexType1" type="ct1_t"/>
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element ref="complexType1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
节目:
import mmod
Blue = 'Blue'
Red = 'Red'
Orange = 'Orange'
Yellow = 'Yellow'
Black = 'Black'
White = 'White'
Green = 'Green'
Violet = 'Violet'
A = [1,2,3,4]
B = [Blue,Red,Orange,Yellow]
C = ['cat', 'dog', 'mouse', 'bird']
D = [[0,1],[0],[1,12,1,2],[2,0,4]]
E = [[Red,Blue],[Yellow],[Orange,Black,Red,White],[Blue,Green,Violet]]
F = [[True,False],[False],[False,True,False,False],[True,True,False]]
G = [0,0,1,0]
H = [1,0,1,1]
root = mmod.Root()
for a,b,c,d,e,f,g,h in zip(A,B,C,D,E,F,G,H):
ct1 = mmod.complexType1(a, b, c)
for d1,e1,f1 in zip(d,e,f):
ct1.append(mmod.myComplexType(d1, e1, f1))
ct1.append(g);
ct1.append(h);
root.complexType1.append(ct1)
print root.toDOM().toprettyxml();
输出:
<?xml version="1.0" ?>
<Root>
<complexType1>
<A_value>1</A_value>
<B_value>Blue</B_value>
<C_value>cat</C_value>
<myComplexType>
<D_value>0</D_value>
<E_value>Red</E_value>
<F_value>true</F_value>
</myComplexType>
<myComplexType>
<D_value>1</D_value>
<E_value>Blue</E_value>
<F_value>false</F_value>
</myComplexType>
<G_value>0</G_value>
<H_value>1</H_value>
</complexType1>
<complexType1>
<A_value>2</A_value>
<B_value>Red</B_value>
<C_value>dog</C_value>
<myComplexType>
<D_value>0</D_value>
<E_value>Yellow</E_value>
<F_value>false</F_value>
</myComplexType>
<G_value>0</G_value>
<H_value>0</H_value>
</complexType1>
<complexType1>
<A_value>3</A_value>
<B_value>Orange</B_value>
<C_value>mouse</C_value>
<myComplexType>
<D_value>1</D_value>
<E_value>Orange</E_value>
<F_value>false</F_value>
</myComplexType>
<myComplexType>
<D_value>12</D_value>
<E_value>Black</E_value>
<F_value>true</F_value>
</myComplexType>
<myComplexType>
<D_value>1</D_value>
<E_value>Red</E_value>
<F_value>false</F_value>
</myComplexType>
<myComplexType>
<D_value>2</D_value>
<E_value>White</E_value>
<F_value>false</F_value>
</myComplexType>
<G_value>1</G_value>
<H_value>1</H_value>
</complexType1>
<complexType1>
<A_value>4</A_value>
<B_value>Yellow</B_value>
<C_value>bird</C_value>
<myComplexType>
<D_value>2</D_value>
<E_value>Blue</E_value>
<F_value>true</F_value>
</myComplexType>
<myComplexType>
<D_value>0</D_value>
<E_value>Green</E_value>
<F_value>true</F_value>
</myComplexType>
<myComplexType>
<D_value>4</D_value>
<E_value>Violet</E_value>
<F_value>false</F_value>
</myComplexType>
<G_value>0</G_value>
<H_value>1</H_value>
</complexType1>
</Root>
1.
蓝色
猫
0
红色
真的
1.
蓝色
假的
0
1.
2.
红色
狗
0
黄色的
假的
0
0
3.
橙色
老鼠
1.
橙色
假的
12
黑色
真的
1.
红色
假的
2.
白色
假的
1.
1.
4.
黄色的
鸟
2.
蓝色
真的
0
绿色
真的
4.
紫罗兰色
假的
0
1.