2013-04-06 5 views
0

새 XSD를 만들지 않고 새 항목을 추가하도록 XSD가 수정되었습니다. 현재이 경우 단일 요소가 "타이어"입니다.XSD에서 다른 요소 만들기

"타이어"유형의 요소를 만들었습니다.

<xs:element name="tire" type="x:tire" /> 

유효성을 검사 할 때 오류가 발생합니다. 오류 :

Not valid. 
Error - Line 4, 43: org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 43; src-resolve.4.2: Error resolving component 'x:tire'. It was detected that 'x:tire' is in namespace 'http://www.w3.org/2001/XMLSchema', but components from this namespace are not referenceable from schema document 'null'. If this is the incorrect namespace, perhaps the prefix of 'x:tire' needs to be changed. If this is the correct namespace, then an appropriate 'import' tag should be added to 'null'. 
Error - Line 4, 43: org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 43; src-resolve: Cannot resolve the name 'x:tire' to a(n) 'type definition' component. 

XML 새로운 제품 요소로 추가됩니다

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:x="http://www.w3.org/2001/XMLSchema"> 

    <xs:element name="tire" type="x:tire" /> 

    <xs:complexType name="product"> 
    <xs:sequence> 
     <xs:element type="xs:anyURI" name="url" /> 
     <xs:element type="xs:double" name="price" /> 

     <xs:element name="specs" maxOccurs="unbounded" 
     minOccurs="0"> 
     <xs:complexType> 
      <xs:sequence> 
      <xs:element name="spec" maxOccurs="unbounded" 
       minOccurs="0"> 
       <xs:complexType> 
       <xs:simpleContent> 
        <xs:extension base="xs:string"> 
        <xs:attribute type="xs:string" name="name" 
         use="optional" /> 
        </xs:extension> 
       </xs:simpleContent> 
       </xs:complexType> 
      </xs:element> 
      </xs:sequence> 
     </xs:complexType> 
     </xs:element> 
     <xs:element name="features" maxOccurs="unbounded" 
     minOccurs="0"> 
     <xs:complexType> 
      <xs:sequence> 
      <xs:element name="feature" maxOccurs="unbounded" 
       minOccurs="0"> 
       <xs:complexType> 
       <xs:simpleContent> 
        <xs:extension base="xs:string"> 
        <xs:attribute type="xs:string" name="name" 
         use="optional" /> 
        </xs:extension> 
       </xs:simpleContent> 
       </xs:complexType> 
      </xs:element> 
      </xs:sequence> 
     </xs:complexType> 
     </xs:element> 
    </xs:sequence> 
    <xs:attribute type="xs:string" name="id" /> 
    <xs:attribute type="xs:string" name="product-type" /> 
    </xs:complexType> 

    <xs:complexType name="tire"> 
    <xs:complexContent> 
     <xs:extension base="product"> 
     <xs:attribute type="xs:string" name="model" /> 
     <xs:attribute type="xs:string" name="trademark" /> 
     </xs:extension> 
    </xs:complexContent> 
    </xs:complexType> 

<xs:element name="products"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="tire" maxOccurs="unbounded" 
     minOccurs="0" type="x:tire" /> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 

</xs:schema> 

<?xml version="1.0" encoding="UTF-8"?> 
<tire trademark="runway" id="369954" product-type="tire"> 
    <url>http://www.tire.es/product/369954.html</url> 
    <price>28.95</price> 
    <specs> 
    <spec name="b_homologation">0</spec> 
    <spec name="b_xl">0</spec> 
    <spec name="b_runflat">0</spec> 
    <spec name="s_drawing_type">simétrico</spec> 
    <spec name="s_consumption">f</spec> 
    <spec name="i_noise">69</spec> 
    <spec name="s_grip">c</spec> 
    </specs> 
</tire> 

XSD.

<xs:element name="glass" maxOccurs="unbounded" minOccurs="0" type="x:glass" /> 

감사합니다.

답변

2

"tire"유형이 XSD 네임 스페이스 http://www.w3.org/2001/XMLSchema에 없으므로 스키마 문서의 대상 네임 스페이스에 있습니다.이 경우에는 "네임 스페이스 없음"입니다. 따라서 type = "x : tire"가 아닌 type = "tire"이어야합니다.

관련 문제