Я пытаюсь сгенерировать XSD из существующего XML-файла, используя intelliJ. Но генерируемый xsd имеет этот атрибут - mixed = "true", который я не ожидаю, поскольку конечный сгенерированный класс (используя xjc) теперь содержит его член как атрибут Serializable, который я не хочу. Кто-нибудь знает, как я мог это предотвратить?mixed = "true" при генерации xsd из xml
XML FILE -
<?xml version="1.0" encoding="UTF-8"?>
<STEPS>
<STEP>
<taskId>1</taskId>
<dependency>
</dependency>
<task>Sample Step</task>
<techDetail>SVN Script path</techDetail>
<description>Sample step</description>
<comments>No commnets</comments>
</STEP>
<STEP>
<taskId>2</taskId>
<dependency>
<dependanttaskId>1</dependanttaskId>
</dependency>
<task>Second Sample Step</task>
<techDetail>SVN Script Path Again</techDetail>
<description>Sample step 2</description>
<comments>No comments again</comments>
</STEP>
<STEP>
<taskId>3</taskId>
<dependency>
<dependanttaskId>1</dependanttaskId>
<dependanttaskId>2</dependanttaskId>
</dependency>
<task>Third Sample Step</task>
<techDetail>SVN Script Path Again</techDetail>
<description>Sample step 3</description>
<comments>No comments again 3</comments>
</STEP>
</STEPS>
СГЕНЕРИРОВАННОГО XSD -
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="task">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Sample Step"/>
<xs:enumeration value="Second Sample Step"/>
<xs:enumeration value="Third Sample Step"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="comments">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="No commnets"/>
<xs:enumeration value="No comments again"/>
<xs:enumeration value="No comments again 3"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="dependency">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element ref="dependanttaskId" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="techDetail">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="SVN Script path"/>
<xs:enumeration value="SVN Script Path Again"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="description">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Sample step"/>
<xs:enumeration value="Sample step 2"/>
<xs:enumeration value="Sample step 3"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="STEP">
<xs:complexType>
<xs:sequence>
<xs:element ref="taskId"/>
<xs:element ref="dependency"/>
<xs:element ref="task"/>
<xs:element ref="techDetail"/>
<xs:element ref="description"/>
<xs:element ref="comments"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="taskId">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
<xs:enumeration value="3"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="dependanttaskId">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="STEPS">
<xs:complexType>
<xs:sequence>
<xs:element ref="STEP" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
СГЕНЕРИРОВАННЫЙ КЛАСС -
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2015.05.14 at 04:02:08 PM IST
//
package generated;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlMixed;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for anonymous complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element ref="{}dependanttaskId" maxOccurs="unbounded" minOccurs="0"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"content"
})
@XmlRootElement(name = "dependency")
public class Dependency {
@XmlElementRef(name = "dependanttaskId", type = JAXBElement.class, required = false)
@XmlMixed
protected List<Serializable> content;
/**
* Gets the value of the content property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the content property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getContent().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link String }
* {@link JAXBElement }{@code <}{@link String }{@code >}
*
*
*/
public List<Serializable> getContent() {
if (content == null) {
content = new ArrayList<Serializable>();
}
return this.content;
}
}
Сделал то, что вы просили. Но я все равно получаю ту же ошибку. – Pratik
Вы нашли решение. Я отсутствовал на неделю. –
Nope. Но я понял, что использую xsd для неправильного. Я должен сначала сделать xsd, а не вывести его из XML – Pratik