You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by "PJ Fanning (Jira)" <ji...@apache.org> on 2021/10/15 13:42:00 UTC

[jira] [Commented] (XMLBEANS-579) SampleXmlUtil misses root element with only one child

    [ https://issues.apache.org/jira/browse/XMLBEANS-579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17429288#comment-17429288 ] 

PJ Fanning commented on XMLBEANS-579:
-------------------------------------

[~a.pinske] XMLBeans is 20 years old. This has probably been the behaviour for most of the 20 years. I'm afraid we can't change behaviour without affecting existing users. XMLBeans is very much in maintenance mode and we are not looking to make major changes.

If you can prove this is a recent regression, we would consider fixing it then.

 

 

> SampleXmlUtil misses root element with only one child
> -----------------------------------------------------
>
>                 Key: XMLBEANS-579
>                 URL: https://issues.apache.org/jira/browse/XMLBEANS-579
>             Project: XMLBeans
>          Issue Type: Bug
>    Affects Versions: Version 5.0.1
>            Reporter: Alexander Pinske
>            Priority: Major
>
> When generating a sample, usually the top-level-element is xml-fragment. But when the type contains only one child-element, it becomes the root.
> {code:java}
> import org.apache.xmlbeans.SchemaTypeSystem;
> import org.apache.xmlbeans.XmlBeans;
> import org.apache.xmlbeans.XmlException;
> import org.apache.xmlbeans.XmlObject;
> import org.apache.xmlbeans.XmlOptions;
> import org.apache.xmlbeans.impl.xb.xsdschema.SchemaDocument;
> import org.apache.xmlbeans.impl.xsd2inst.SampleXmlUtil;
> public class SchemaTest {
> 	private static String generateXml(String xsdString) throws XmlException {
> 		XmlOptions options = new XmlOptions().setDocumentSourceName("a.xsd");
> 		XmlObject xsd = SchemaDocument.Factory.parse(xsdString, options);
> 		SchemaTypeSystem schema = XmlBeans.compileXsd(new XmlObject[] { xsd }, XmlBeans.getBuiltinTypeSystem(), options);
> 		return SampleXmlUtil.createSampleForType(schema.globalElements()[0].getType());
> 	}
> 	public static void main(String[] args) throws Exception {
> 		String xml = generateXml(
> 				"<?xml version=\"1.0\" encoding=\"utf-8\"?><schema elementFormDefault=\"qualified\" targetNamespace=\"x\" xmlns=\"http://www.w3.org/2001/XMLSchema\">"
> 						+ "	<element name=\"a\">" //
> 						+ "		<complexType><sequence>" //
> 						+ "			<element name=\"b\"><complexType><sequence>" //
> 						+ "				<element name=\"c\" type=\"string\" />" //
> 						+ "			</sequence></complexType></element>" //
> 						+ "		</sequence></complexType>" //
> 						+ "	</element>" //
> 						+ "</schema>");
> 		System.out.println(xml);
> 	}
> }
> {code}
> Generates:
> {code:xml}
> <x:b xmlns:x="x">
>   <x:c>string</x:c>
> </x:b>
> {code}
> Expected:
> {code:xml}
> <xml-fragment xmlns:x="x">
>   <x:b>
>     <x:c>string</x:c>
>   </x:b>
> </xml-fragment>
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org