1 / 10

XML Schemas Experiences Rogue Wave Software Allen Brookes

XML Schemas Experiences Rogue Wave Software Allen Brookes. Introduction. Rogue Wave XML Schema experience mainly from data binding product XML Object Link Mostly positive experiences Main issues Difficult Schema Features Invalid Schemas Versioning Compiler Limitations. Schema Features.

drake
Download Presentation

XML Schemas Experiences Rogue Wave Software Allen Brookes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML Schemas Experiences Rogue Wave SoftwareAllen Brookes

  2. Introduction • Rogue Wave XML Schema experience mainly from data binding product XML Object Link • Mostly positive experiences • Main issues • Difficult Schema Features • Invalid Schemas • Versioning • Compiler Limitations

  3. Schema Features • Schema provides many features with no or no simple equivalent in C++ • Choice • ComplexType restriction • Mixed content • Resulting representation may be inefficient or unnatural

  4. Schema Features - Choice • Need to store all types possible in the choice • Need to store an indication of the current choice • Result is somewhat inefficient (extra storage) and unnatural (can hold and manipulate data not in the document)

  5. Schema Features - restriction • Restriction can cause class members to change type <complexType name=“base”> <sequence> <any/> </sequence> </complexType> <complexType> <complexContent> <restriction base=“base”> <sequence> <element name=“foo” type=“int”/> </sequence> </restriction> </complexContent </complexType>

  6. Schema Features – mixed content • Mixed content doesn’t seem consistent with XML as data language. • Our one request for mixed content didn’t really need it. <element name=“foo”> <complexType mixed=“true”> <attribute name=“bar” type=“string”/> </complexType> </element> <foo bar=“bar”>content</foo>

  7. Invalid Schemas • Many customers have invalid schemas • Ambiguous schemas • Circular includes • Illegal restrictions • Namespace problems • Non standard extensions • Often generated by tools • Customers want schemas supported anyway

  8. Versioning • Our versioning model: all versioning changes represented with new XML namespace. • Customers want XML data models to ignore extra element and attribute content. • Possible in our model only with wildcards.

  9. Compiler Limitations • Large Schemas may cause too many classes to be generated. • FPML, FixML, JXDM, JDF • Obvious fix would be to divide into multiple libraries but Schema doesn’t provide divisions that would make that possible without a lot of analysis

  10. Summary/Conclusions • Most issues from difficult Schema features, both real and perceived • Possible solution: changing or profiling Schema • Does profiling Schema make sense? • Customer expectations and tool design are guided by Schema spec. Profiling should reset expectations. • Profiling won’t stop users from using features and they will still expect support. • Are problems with Schema or our data model? • XML Beans shows that a different model allows support for all of schema while supporting versioning.

More Related