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/12/27 14:00:00 UTC

[jira] [Resolved] (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:all-tabpanel ]

PJ Fanning resolved XMLBEANS-579.
---------------------------------
    Resolution: Fixed

> 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
>            Assignee: PJ Fanning
>            Priority: Major
>             Fix For: Version 5.0.3
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> 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.20.1#820001)

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