{ "info": { "author": "Zope community, and various others contributors", "author_email": "info@infrae.com", "bugtrack_url": null, "classifiers": [ "Framework :: Zope2", "License :: OSI Approved :: Zope Public License", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Markup :: XML" ], "description": "Parsed XML\n==========\n\n.. contents::\n\nWhat is it?\n-----------\n\nParsed XML allows you to use XML objects in the Zope environment. You\ncan create XML documents in Zope and leverage Zope to format, query,\nand manipulate XML.\n\nParsed XML consists of a DOM storage, a builder that uses PyExpat to\nparse XML into the DOM, and a management proxy product that provides\nZope management features for a DOM tree. It also includes a system to\ncreate paths to nodes in Zope URLs (NodePath).\n \n\nFeatures\n--------\n\nThe Parsed XML product parses XML into a Zopish DOM tree. The\nelements of this tree support persistence, acquisition, etc.. The\ndocument and subnodes are editable and manageable through management\nproxy objects, and the underlying DOM tree can be directly manipulated\nvia DTML, Python, etc..\n\nDOM and ManageableDOM\n`````````````````````\n\nWe're implementing a lean, mean DOM tree for pure DOM access, and a\ntree of proxy shells to handle management and take care of the\nconveniences like publishing and security. The ManageableNodes are\nthe proxy objects. These are what you see in the management\ninterface, and the top object that gets put in the ZODB. Note that\nonly the top proxy object is persistent, the others are transient.\nThe Nodes are pure DOM objects. From a ManageableNode, the DOM Node\nis retrieved with the ``getDOMObj()`` call.\n\n\nDOM API support\n```````````````\n\nThe DOM tree created by Zope aims to comply with the DOM level 2\nstandard. This allows you to access your XML in DTML or External\nMethods using a standard and powerful API.\n\nWe are currently supporting the DOM level 2 Core and Traversal\nspecifications.\n\nThe DOM tree is not built with the XML-SIG's DOM package, because it\nrequires significantly different node classes.\n\nDOM attributes are made available according to the Python language\nmapping for the IDL interfaces described by the DOM recommendation;\nsee the `mapping `_\n\nURL traversal\n`````````````\n\nParsed XML implements a ``NodePath`` system to create references to\nXML nodes (most commonly elements).\n\nCurrently, traversal uses an element's index within its parent as an\nURL key. For example::\n \n http://server/myDoc/0/2/mymethod\n \nThis URL traverses from an XML Document object with id ``myDoc`` to\nit's first sub-element, to that element's second sub-element to an\nacquired method with id ``myMethod``.\n\nDOM methods can also be used in URLs, for example::\n\n http://server/myDoc/firstChild/nextSibling/mymethod\n \nEditing XML with the management interface\n`````````````````````````````````````````\n\nXML Documents and subnodes are editable via the management\ninterface. Documents and subtrees can be replaced by uploading XML\nfiles.\n\nSecurity\n````````\n\nSecurity is handled at the document level. DOM attributes and methods\nare protected by the \"Access contents information\" permission.\nSubnodes will acquire security settings from the document.\n\nDeveloping with Parsed XML\n--------------------------\n\nWe like to think that Parsed XML provides a flexible platform for\nusing a DOM storage and extending that storage to do interesting\nthings. See ``README.DOMProxy`` for an explanation of how we're using\nthis for Parsed XML.\n\nWe've included a comprehensive unit test suite to make testing for DOM\ncompliance easier. See ``tests/README`` for details.\n\n If you want to submit changes to Parsed XML, please use the test\n suite to make sure that your changes don't break anything.\n\nBugs\n----\n\nThere are bugs in how multiple node references reflect the hierarchy\nabove the node:\n\n- A reference to a subnode of a DOM document won't reflect some\n hierarchy changes made on other references to the same node.\n \n If two references to a node are created, and one is then\n reparented, the other reference won't reflect the new parent.\n The parentNode attribute will be incorrect, for example, as well\n as the ownerDocument and ownerElement attributes.\n\n- A reference to a subnode of a DOM document can't be properly stored\n as a persistent attribute of a ZODB object; it will lose hierarchy\n information about its parent as well.\n\nEntity reference handling is not complete:\n\n- Entity references do not have child nodes that mirror the child\n nodes of the referenced entity; they do not have child nodes at all.\n\n- TreeWalker.expandEntityReferences has no effect, because of the\n above bug.\n\nTraversal support for visibility and roots is not complete.\n\n\n\nCredits\n=======\n\nCurrent Maintainer:\n\n- Martijn Faassen \n\nContributors:\n\n- Patrick Decat \n- Tim Heap\n \nThe Zope Corporation Parsed XML team:\n\n- Karl Anderson\n- Fred Drake \n- Todd Corum\n- Martijn Pieters \n\nExternal Contributor:\n\n- Martijn Faassen \n\nMuch test and implementation help was provided by\n\n- Chris McDonough \n- Shane Hathaway \n- Guido van Rossum \n\nParsed XML also contains code from versions of the original\nXMLDocument, written by Amos Latteier and Fourthought Inc.\n\nParsedXML contains software derived from works by Fourthought Inc; see\n``LICENSE.Fourthought`` for their license.\n\nChanges\n=======\n\nParsedXML 1.5.1 (2010/07/15)\n----------------------------\n\n- Update imports and syntax to work with Zope 2.12 and Python 2.6.\n\nParsedXML 1.5\n-------------\n\nBugs Fixed:\n\n- Allow unicode characters in qualified names.\n\nOther changes:\n\n- Zope 2.8 transaction compatibility fixes.\n\nParsedXML 1.4\n-------------\n\nFeatures Added:\n\n- Switched the test suite over to use ZopeTestCase.\n\n- Updated UI so that the XML edit screen is the first screen\n seen, not the DOM screen.\n\n- UI is UTF-8 by default now, the same as the default encoding\n of the XML. XML *encoding* setting in the XML declaration\n other than UTF-8 are supported by the upload, but the XML text\n will be converted to unicode internally and will display as\n UTF-8, the default encoding.\n\n You can also use the encoding in the XML declaration in the\n edit entry, but you will be unlikely to get it right as the\n interactions between various encodings becomes rather\n complex. If you have XML text in a non-UTF-8 encoding upload\n it as a file rather than copy and paste it.\n\n- Switched over to new-style security declarations and added a\n few.\n\nBugs Fixed:\n\n- Cleaned out tests so they all pass. This was done\n (unfortunately) by disabling some failing tests.\n\n- Some encoding issues should be more sane now.\n\nMisc:\n\n- Updated license to ZPL 2.0.\n\n- get rid of unused HTML writing support.\n\n- Removed old Printer.py module (PrettyPrinter works better and\n has more functionality).\n\n- get rid of obsolete delegation through StrIO module to get StringIO.\n\nParsedXML 1.3.1\n---------------\n\nBugs Fixed:\n\n- Bugfix/performance improvement. Do not rely on ``getPersistentDocument()``\n but instead use acquisition parent. This fixes a memory leak\n triggered when doing ``document.documentElement``, and also likely\n improves performance when accessing the DOM through the ManageableDOM\n wrappers.\n\n- The Zope Find tab should now not give an error anymore when searching\n with ids.\n\n- Use the One True Way to import expat now ('from xml.parsers\n import expat').\n\nParsedXML 1.3.0\n---------------\n\nFeatures:\n\n- All element nodes now have a _element_id id. This id is guaranteed\n to be unique in the document, though which id an element has may\n change in a reparse.\n\n- NodePath system for creating various paths to nodes. This can\n be based on 'child' (child node index), 'element_id', or\n 'robust', which is not very robust as yet in some ways, but\n should be resistent to quite a few changes to the document.\n\n- added pretty printing feature. A pretty print button renders\n the document in pretty printed form, but does not save this\n changed version (you can do so yourself).\n\nBugs Fixed:\n\n- Removed ParsedXML's Expat, introduced dependency on PyXML's \n pyexpat instead (or just compile your own). This gets rid of\n lots of install hassles, especially on Windows. Just install\n PyXML.\n\n- An ongoing attempt to bring sanity to the unit test story.\n\n- Avoid XML-garbling bug in Printer by using PrettyPrinter.\n\n- various bugfixes in the DOM.\n\nParsedXML 1.2.1\n---------------\n\nFeatures:\n\n- pyexpat.c is now in sync with Python's and PyXML's version.\n\nParsedXML 1.2.0\n---------------\n\nBugs Fixed:\n\n- Tests are now more conformant with Zope unit testing guidelines.\n\n- Should work with Python 2.1/Zope 2.4, but not all the way \n there yet (parser segfault..)\n\n- new version of PyExpat\n\nFeatures:\n\n- Access to DOM from Zope environment sped up by new DOMProxy\n implementation\n\nParsedXML 1.1b1\n---------------\n\nBugs Fixed:\n\n- Fixed an ExpatBuilder bug that caused a DOM reference to be\n leaked when parsing occured at the document. There is still a\n leak for fragment parsing that we're looking into.\n\nFeatures:\n\n- ZCatalog support added\n\n- ZCache support added\n\nParsedXML 1.1a1\n---------------\n\nBugs Fixed:\n\n- Version numbers make more sense :)\n\nFeatures:\n\n- The value returned by get_size() is cached, which will often\n speed up the management view of an instance's container. \n\nParsedXML 1.0\n-------------\n\nBugs Fixed:\n\n- Problems with Attr Node manipulation not being reflected by\n the getAttribute methods of their Elements and vice versa\n fixed.\n\n- Erroneous position information for parse error output on\n subnodes fixed.\n\n- Default attributes are noticed by the parser and printer, and\n the relevent DOM methods work.\n\nFeatures:\n\n- ManageableDOM Nodes can find the persistent Document wrapper\n when it has been installed in a Zope ObjectManager. This\n object, rather than a newly created ManageableDocument\n wrapper, is returned when available by OwnerDocument calls.\n This allows Zopish navigation and discovery out of the\n Document, helps shorten acquisition paths, and fixes some bugs\n with manipulation at the Document.\n\n- ManageableDOM's usage of namespaces for parsing is now\n optional and settable.\n\n- The DOM 2 Traversal interface has been fleshed out, although\n support for visiblity and roots is not complete.\n\nParsedXML 0.1b3\n---------------\n\nBugs Fixed:\n\n- Yet a few more DOM bugs fixed.\n\n- Fixed a distribution error that was causing build problems\n under Solaris.\n\nParsedXML 0.1b2\n---------------\n\nBugs Fixed:\n\n- Many bugs found and fixed as we hammered out new DOM tests,\n especially in namespace usage, attribute printing, and\n attribute children.\n\nFeatures:\n\n- Several speedups throughout the code.\n\n- ManageableDOM refactored into several base classes to make\n extension easier.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.zope.org/Members/faassen/ParsedXML", "keywords": "parsedxml xml zope2", "license": "ZPL 2.0 and Fourthought license", "maintainer": null, "maintainer_email": null, "name": "Products.ParsedXML", "package_url": "https://pypi.org/project/Products.ParsedXML/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/Products.ParsedXML/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://www.zope.org/Members/faassen/ParsedXML" }, "release_url": "https://pypi.org/project/Products.ParsedXML/1.5.1/", "requires_dist": null, "requires_python": null, "summary": "Parsed XML allows you to use XML objects in the Zope 2 environment.", "version": "1.5.1" }, "last_serial": 945389, "releases": { "1.5": [ { "comment_text": "", "digests": { "md5": "c969e829bf260a0c0e4c533904e9332f", "sha256": "7fe433634c2a986b11a54ff4d515bb38db61a816c9e6572ca6f816eb81de50d1" }, "downloads": -1, "filename": "Products.ParsedXML-1.5.tar.gz", "has_sig": false, "md5_digest": "c969e829bf260a0c0e4c533904e9332f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 139622, "upload_time": "2008-09-30T10:35:51", "url": "https://files.pythonhosted.org/packages/c1/70/30e8080d1078a2b57497300357212a8991d790d2be83270577c913c58188/Products.ParsedXML-1.5.tar.gz" } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "bc9f188a91d3c6438d3ce5e4b015001b", "sha256": "fce7561e5e3bd9b058c5d144b5eb35f5fc0597db2bf18ec491998c7e13847b8e" }, "downloads": -1, "filename": "Products.ParsedXML-1.5.1.tar.gz", "has_sig": false, "md5_digest": "bc9f188a91d3c6438d3ce5e4b015001b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 137150, "upload_time": "2010-07-15T17:34:44", "url": "https://files.pythonhosted.org/packages/b4/6d/2f40f8d97b6b7150351b809f2db01bd8334e5433f9a0c25dbf01f203a62f/Products.ParsedXML-1.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bc9f188a91d3c6438d3ce5e4b015001b", "sha256": "fce7561e5e3bd9b058c5d144b5eb35f5fc0597db2bf18ec491998c7e13847b8e" }, "downloads": -1, "filename": "Products.ParsedXML-1.5.1.tar.gz", "has_sig": false, "md5_digest": "bc9f188a91d3c6438d3ce5e4b015001b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 137150, "upload_time": "2010-07-15T17:34:44", "url": "https://files.pythonhosted.org/packages/b4/6d/2f40f8d97b6b7150351b809f2db01bd8334e5433f9a0c25dbf01f203a62f/Products.ParsedXML-1.5.1.tar.gz" } ] }