Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml xjc失败,多个xsd具有不同的命名空间_Xml_Xsd_Xjc - Fatal编程技术网

Xml xjc失败,多个xsd具有不同的命名空间

Xml xjc失败,多个xsd具有不同的命名空间,xml,xsd,xjc,Xml,Xsd,Xjc,我正在努力解决一个可能非常简单但无法推理和分析的问题。我使用了三种不同的XSD,然后使用它们尝试使用XJC生成java类来创建web服务 Prvilege.xsd <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns="http://xmlns.hishekha.org/type" targetNamespace="http://xmlns.hishekha.org/type" xmlns:xs="htt

我正在努力解决一个可能非常简单但无法推理和分析的问题。我使用了三种不同的XSD,然后使用它们尝试使用XJC生成java类来创建web服务

Prvilege.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://xmlns.hishekha.org/type"
    targetNamespace="http://xmlns.hishekha.org/type"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    elementFormDefault="qualified"
    attributeFormDefault="unqualified">
    <xs:element name="Privilege" type="Privilege" />

    <xs:complexType name="Privilege">
        <xs:sequence>
            <xs:element name="Id" type="xs:int" />
            <xs:element name="Name" type="xs:string" />
        </xs:sequence>
    </xs:complexType>
</xs:schema>
我想我犯了一些简单的错误,但我想不出来。请帮帮我。
注意:所有xsd文件都在同一目录中。

问题不在
UserServiceOperations.xsd中。它正确地导入了
User.xsd
模式,这是验证对合格
User
元素的引用所必需的

问题出在
Role.xsd
中。它与
Privilege.xsd
属于同一名称空间,因此您不应该导入它,而应该包含它(就像您在
User.xsd
中所做的那样,包含
Role.xsd

不是:


但是



如果更改这一行,可以验证
userservicecooperations.xsd
并使用
xjc

Hi@helderdarocha生成类,我也尝试过,但它给出了相同的问题。所描述的更改修复了模式集。在此之后,很可能是xjc中的一个限制/缺陷
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://xmlns.hishekha.org/type"
    targetNamespace="http://xmlns.hishekha.org/type"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:privilege="http://xmlns.hishekha.org/type"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified">

    <xs:import schemaLocation="Privilege.xsd" namespace="http://xmlns.hishekha.org/type"  />
    <xs:element name="Role" type="Role" />
    <xs:complexType name="Role">
        <xs:sequence>
            <xs:element name="Id" type="xs:int" />
            <xs:element name="Name" type="xs:string" />
            <xs:element name="Privilege" type="privilege:Privilege" minOccurs="1" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>

</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:u="http://xmlns.hishekha.org/type"
    targetNamespace="http://xmlns.hishekha.org/type" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:role="http://xmlns.hishekha.org/type"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified">

    <xs:include schemaLocation="Role.xsd"  />

    <xs:element name="User" type="u:User" />

    <xs:complexType name="User">
        <xs:sequence>
            <xs:element name="Id" type="xs:int" />
            <xs:element name="Username" type="xs:string" />
            <xs:element name="FirstName" type="xs:string" />
            <xs:element name="LastName" type="xs:string" />
            <xs:element name="Email" type="xs:string" />
            <xs:element name="Birthdate" type="xs:date" />
            <xs:element name="Role" type="role:Role" />
            <xs:element name="IsAccountExpired" type="xs:boolean" />
            <xs:element name="IsAccountLocked" type="xs:boolean" />
            <xs:element name="IsAccountASLExpired" type="xs:boolean" />
            <xs:element name="IsAccountEnabled" type="xs:boolean" />
        </xs:sequence>
    </xs:complexType>       
</xs:schema>
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxb2-maven-plugin</artifactId>
    <version>1.5</version>
    <executions>
        <execution>
            <goals>
                <goal>xjc</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <clearOutputDir>false</clearOutputDir>
        <outputDirectory>src/main/java</outputDirectory>
        <schemaDirectory>src/main/webapp/schemas</schemaDirectory>
        <includes>**/*xsd</includes>
        <enableIntrospection>false</enableIntrospection>
    </configuration>
</plugin>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://xmlns.hishekha.org/services"
    targetNamespace="http://xmlns.hishekha.org/services"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:u="http://xmlns.hishekha.org/type"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified">

    <xs:import namespace="http://xmlns.hishekha.org/type" schemaLocation="User.xsd" />

    <xs:element name="UserResponseOutput">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="User" type="u:User" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>

</xs:schema>
[INFO] Generating source...
[INFO] parsing a schema...
[ERROR] file:/C:/Users/hishekha.ORADEV/WorkspaceJ2EE/SimpleServices/src/main/web
app/schemas/UserServiceOperations.xsd[14,45]
org.xml.sax.SAXParseException; systemId: file:/C:/Users/hishekha.ORADEV/Workspac
eJ2EE/SimpleServices/src/main/webapp/schemas/UserServiceOperations.xsd; lineNumb
er: 14; columnNumber: 45; src-resolve: Cannot resolve the name 'u:User' to a(n)
'type definition' component.
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAX
ParseException(ErrorHandlerWrapper.java:198)
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Err
orHandlerWrapper.java:134)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(
XMLErrorReporter.java:437)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.repo
rtSchemaErr(XSDHandler.java:4162)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.repo
rtSchemaError(XSDHandler.java:4145)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getG
lobalDecl(XSDHandler.java:1741)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTrave
rser.traverseNamedElement(XSDElementTraverser.java:405)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTrave
rser.traverseLocal(XSDElementTraverser.java:194)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.trav
erseLocalElements(XSDHandler.java:3618)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.pars
eSchema(XSDHandler.java:633)
        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema
(XMLSchemaLoader.java:616)
        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGramma
r(XMLSchemaLoader.java:574)
        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGramma
r(XMLSchemaLoader.java:540)
        at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.n
ewSchema(XMLSchemaFactory.java:252)
        at com.sun.tools.xjc.reader.xmlschema.parser.SchemaConstraintChecker.che
ck(SchemaConstraintChecker.java:101) ....
<xs:import schemaLocation="Privilege.xsd" namespace="http://xmlns.hishekha.org/type"  />
<xs:include schemaLocation="Privilege.xsd" />