In the definition of the type that contains the element, the hidden element
class attribute is assigned an ElementDeclaration instance. The third
argument to the constructor is True iff the element is plural:
# Element Value uses Python identifier Value
__Value =
pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None,
u'Value'), 'Value', '__AbsentNamespace0_CTD_ANON_Value', True,
pyxb.utils.utility.Location(None, 6, 8), )
Generally it's better to look at the schema to determine how the elements
operate. With the new FAC-based content model figuring out occurrence
restrictions from the generated code is much harder.
Peter
On Fri, Jan 4, 2013 at 10:23 PM, Aaron Storm <aaron_st...@yahoo.com> wrote:
> Peter - Thank you so much!
>
> You were right regarding multiple Value elements. Your example works.
>
> >> example.Field[0].Name #works
> status
>
> >> example.Field[0].Value[0].value #works
> Open
>
> >> example.Field[0].Value[0].ReferenceValue #works
> Some Ref Value
>
> I was comparing against examples/content/showcontent.py and didn't realize
> my schema specify multiple occurrences.
> Is there anything on the generated module that gives hints for something
> like this?
>
> Again, thank a lot!
>
> Regards,
> A
>
> ------------------------------
> *From:* Peter Bigot <big...@acm.org>
> *To:* Aaron Storm <aaron_st...@yahoo.com>
> *Cc:* "pyxb-users@lists.sourceforge.net" <pyxb-users@lists.sourceforge.net>
>
> *Sent:* Friday, January 4, 2013 7:24 PM
> *Subject:* Re: [pyxb-users] Issue with Complex type with content type
> SIMPLE
>
> I assume "example" below is an instance of a complex type you didn't
> provide. I think the issue is that there is only one Field in whatever
> that containing element is, while there are multiple Value elements in a
> single Field element.
>
> xmls = '<Field Name="status"><Value ReferenceValue="Some Ref
> Value">Open</Value></Field>'
> instance = CreateFromDocument(xmls)
> print instance.toxml('utf-8')
> print instance.Name
> print 'Field %s has %u values' % (instance.Name,
> len(instance.Value))
> for v in instance.Value:
> print 'Value type %s is %s' % (v.ReferenceValue, v.value())
>
> produces:
>
> <?xml version="1.0" encoding="utf-8"?><Field Name="status"><Value
> ReferenceValue="Some Ref Value">Open</Value></Field>
> status
> Field status has 1 values
> Value type Some Ref Value is Open
>
> Peter
>
> On Fri, Jan 4, 2013 at 1:12 PM, Aaron Storm <aaron_st...@yahoo.com> wrote:
>
> Issue with Complex type with content type SIMPLE
>
>
> I am having problems trying to access the content of an element. Any idea
> what I should do?
>
>
> >> example.Field[0].Name #works
> status
>
> >> example.Field[0].Value #doesn't work
> >> example.Field[0].Value.value #doesn't work
> >> example.Field[0].Value.ReferenceValue #doesn't work
>
>
> Here is the snippet of the xml and xsd:
>
> xml:
> <Field Name="status">
> <Value ReferenceValue="Some Ref Value">Open</Value>
> </Field>
>
> xsd>:
> <xs:element name="Field" maxOccurs="unbounded">
> <xs:annotation>
> <xs:documentation>A single field.</xs:documentation>
> </xs:annotation>
> <xs:complexType>
> <xs:sequence>
> <xs:element name="Value" minOccurs="0" maxOccurs="unbounded">
> <xs:annotation>
> <xs:documentation>The current value of the field in this
> entity instance. Multi-value fields contain multi-value elements. Reference
> fields contain the ReferenceValue attribute.</xs:documentation>
> </xs:annotation>
> <xs:complexType>
> <xs:simpleContent>
> <xs:extension base="xs:string">
> <xs:attribute name="ReferenceValue" type="xs:string"
> use="optional"/>
> </xs:extension>
> </xs:simpleContent>
> </xs:complexType>
> </xs:element>
> </xs:sequence>
> <xs:attribute name="Name" type="xs:string" use="required">
> <xs:annotation>
> <xs:documentation>The field name.</xs:documentation>
> </xs:annotation>
> </xs:attribute>
> </xs:complexType>
> </xs:element>
>
> Generated class:
>
> # Complex type [anonymous] with content type SIMPLE
> class CTD_ANON_3 (pyxb.binding.basis.complexTypeDefinition):
> """The current value of the field in this entity instance. Multi-value
> fields contain multi-value elements. Reference fields contain the
> ReferenceValue attribute."""
> _TypeDefinition = pyxb.binding.datatypes.string
> _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_SIMPLE
> _Abstract = False
> _ExpandedName = None
> _XSDLocation =
> pyxb.utils.utility.Location('C:\\Temp\\rest\\xsd\\Entity.xsd', 25, 11)
> # Base type is pyxb.binding.datatypes.string
>
> # Attribute ReferenceValue uses Python identifier ReferenceValue
> __ReferenceValue =
> pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None,
> u'ReferenceValue'), 'ReferenceValue',
> '__AbsentNamespace0_CTD_ANON_3_ReferenceValue',
> pyxb.binding.datatypes.string)
> __ReferenceValue._DeclarationLocation =
> pyxb.utils.utility.Location('C:\\Temp\\rest\\xsd\\Entity.xsd', 28, 14)
> __ReferenceValue._UseLocation =
> pyxb.utils.utility.Location('C:\\Temp\\rest\\xsd\\Entity.xsd', 28, 14)
>
> ReferenceValue = property(__ReferenceValue.value,
> __ReferenceValue.set, None, None)
>
>
> _ElementMap = {
>
> }
> _AttributeMap = {
> __ReferenceValue.name() : __ReferenceValue
> }
>
>
> Regards,
>
>
> ------------------------------------------------------------------------------
> Master HTML5, CSS3, ASP.NET <http://asp.net/>, MVC, AJAX, Knockout.js,
> Web API and
> much more. Get web development skills now with LearnDevNow -
> 350+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
> SALE $99.99 this month only -- learn more at:
> http://p.sf.net/sfu/learnmore_122812
> _______________________________________________
> pyxb-users mailing list
> pyxb-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/pyxb-users
>
>
>
>
>
------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122912
_______________________________________________
pyxb-users mailing list
pyxb-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pyxb-users