Hi Chris,
A complexType that extends a simpleType exposes the simple content as a
property named "value". So, you would set it like this:
subCategory.set("value", "myCategory");
Frank
[EMAIL PROTECTED] wrote on 05/25/2007 11:10:35 AM:
> Hi,
>
> I have the following schema:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema xmlns:ext="urn:Extension"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> targetNamespace="urn:Extension"
> elementFormDefault="unqualified" attributeFormDefault="unqualified"
> version="1.0">
> <xs:element name="Extension">
> <xs:complexType>
> <xs:sequence>
> <xs:element ref="ext:SubCategory" minOccurs="0"
> maxOccurs="unbounded" />
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="SubCategory">
> <xs:complexType>
> <xs:simpleContent>
> <xs:extension base="xs:string">
> <xs:attribute name="displayable" type="xs:boolean"
> use="optional" />
> </xs:extension>
> </xs:simpleContent>
> </xs:complexType>
> </xs:element>
> </xs:schema>
>
>
> And I'd like to create this xml:
>
> <?xml version="1.0" encoding="ASCII"?>
> <ext:Extension xmlns:ext="urn:Extension">
> <ext:SubCategory displayable="true">myCategory</SubCategory>
> </ext:Extension>
>
>
> I'm having problems setting the value "myCategory". In examples I've
> seen where the element does not contain an attribute, a simple
> set("SubCategory", "myCategory") would work. It seems that I can't use
> that in this case. Here's my current code:
>
> HelperContext context = SDOUtil.createHelperContext();
>
> InputStream in = new File("Extension.xsd").toURL().openStream();
> context.getXSDHelper().define(in, null);
>
> DataObject extension =
> context.getDataFactory().create("urn:Extension", "Extension");
>
> DataObject subCategory =
extension.createDataObject("SubCategory");
> subCategory.setBoolean("displayable", true);
>
> extension.set("SubCategory", "myCategory");
>
> context.getXMLHelper().save(extension, "urn:Extension",
> "Extension", System.out);
>
>
> When the set() method is called, i get the following exception:
>
> Exception in thread "main" java.lang.ClassCastException:
java.lang.String
> at org.eclipse.emf.ecore.util.EcoreEList.set(EcoreEList.java:448)
> at org.eclipse.emf.ecore.impl.
> EStructuralFeatureImpl$InternalSettingDelegateMany.
> dynamicSet(EStructuralFeatureImpl.java:1647)
> at org.eclipse.emf.ecore.impl.BasicEObjectImpl.
> eDynamicSet(BasicEObjectImpl.java:709)
> at org.apache.tuscany.sdo.impl.DynamicDataObjectImpl.
> eDynamicSet(DynamicDataObjectImpl.java:159)
> at org.apache.tuscany.sdo.impl.DataObjectImpl.
> eSet(DataObjectImpl.java:1459)
> at org.eclipse.emf.ecore.impl.BasicEObjectImpl.
> eSet(BasicEObjectImpl.java:654)
> at
org.apache.tuscany.sdo.impl.DataObjectImpl.set(DataObjectImpl.java:142)
> at
org.apache.tuscany.sdo.util.DataObjectUtil.set(DataObjectUtil.java:730)
> at
org.apache.tuscany.sdo.impl.DataObjectImpl.set(DataObjectImpl.java:225)
> at Test.valueTest(Test.java:186)
> at Test.main(Test.java:197)
>
>
> I've tried looking through the samples and test cases, but couldn't
> find a similar example. Any help in pointing me to the correct API
> would be appreciated.
>
> Thanks,
> -Chris
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]