XML Schema complexType ਐਲੀਮੈਂਟ

ਨਿਰਮਾਣ ਅਤੇ ਵਰਤੋਂ

complexType ਐਲੀਮੈਂਟ ਜਟਿਲ ਟਾਈਪ ਨਿਰਮਾਣ ਕਰਦਾ ਹੈ। ਜਟਿਲ ਟਾਈਪ ਦੇ ਐਲੀਮੈਂਟ ਹਨ ਜੋ ਹੋਰ ਐਲੀਮੈਂਟ ਅਤੇ/ਜਾਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਸਮੇਤ ਹੁੰਦੇ ਹਨ ਐਕਸਮਲ ਐਲੀਮੈਂਟ

ਐਲੀਮੈਂਟ ਸੂਚਨਾ

ਸ਼ੁਰੂ ਹੋਣ ਦੀ ਗਿਣਤੀ ਢਾਂਚੇ ਵਿੱਚ ਬੇਸ਼ਰਕਾਰੀ ਹੈ; ਐਲੀਮੈਂਟ ਵਿੱਚ ਇੱਕ ਵਾਰ ਹੈ。
ਮਾਤਾ ਐਲੀਮੈਂਟ element、redefine、schema
ਸਮੱਗਰੀ annotation、simpleContent、complexContent、group、all、choice、sequence、attribute、attributeGroup、anyAttribute

ਵਿਧਾਨ

<complexType
id=ID 
name=NCName 
abstract=true|false 
mixed=true|false
block=(#all|list of (extension|restriction))
final=(#all|list of (extension|restriction))
ਕੋਈ ਵਿਸ਼ੇਸ਼ਤਾ
>
(annotation?,(simpleContent|complexContent|((group|all| 
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))
</complexType>

(? ਚਿਹਨਕਾਰੀ ਸੰਕੇਤਾਂ ਵਿੱਚ ਹੈ complexType ਐਲੀਮੈਂਟ ਵਿੱਚ ਚਿਹਨਕਾਰੀ ਸੰਕੇਤਾਂ ਵਿੱਚ ਹੈ element ਦੇ ਆਉਣ ਦੀ ਸੰਖਿਆ ਕੋਈ ਵੀ ਹੋ ਸਕਦੀ ਹੈ ਜਾਂ ਇੱਕ ਹੋ ਸਕਦੀ ਹੈ,* ਚਿਹਨਕਾਰੀ ਸੰਕੇਤਾਂ ਵਿੱਚ element ਦੇ ਆਉਣ ਦੀ ਸੰਖਿਆ ਕੋਈ ਵੀ ਹੋ ਸਕਦੀ ਹੈ ਜਾਂ ਬਹੁਤ ਹੋ ਸਕਦੀ ਹੈ。)

ਵਿਸ਼ੇਸ਼ਤਾ

id

ਚੋਣਯਾ। ਇਸ ਐਲੀਮੈਂਟ ਦਾ ਅਨੂਠਾ ਆਈਡੀ ਨਿਰਧਾਰਿਤ ਕਰਨ ਲਈ ਹੈ।

name

ਚੋਣਯਾ। ਇਸ ਐਲੀਮੈਂਟ ਦਾ ਨਾਮ ਨਿਰਧਾਰਿਤ ਕਰਨ ਲਈ ਹੈ।

abstract

ਚੋਣਯਾ। ਇਹ ਇਸ ਵੱਡੇ ਵਿਸ਼ੇਸ਼ ਟਾਈਪ ਨੂੰ ਇਸਤੇਮਾਲ ਕਰਨ ਲਈ ਕੀ ਵਿਸ਼ੇਸ਼ ਵਿਸ਼ੇਸ਼ ਟਾਈਪ ਦਾ ਇਸਤੇਮਾਲ ਕੀਤਾ ਜਾਵੇ ਜਾਂ ਨਹੀਂ ਹੈ। ਜੇਕਰ ਇਹ ਮੁੱਲ true ਹੈ ਤਾਂ ਐਲੀਮੈਂਟ ਸਿੱਧੇ ਇਸ ਵੱਡੇ ਵਿਸ਼ੇਸ਼ ਟਾਈਪ ਨੂੰ ਇਸਤੇਮਾਲ ਨਹੀਂ ਕਰ ਸਕਦਾ ਹੈ ਬਲਕਿ ਉਹ ਵੱਡੇ ਵਿਸ਼ੇਸ਼ ਟਾਈਪ ਤੋਂ ਵੱਡਾ ਵਿਸ਼ੇਸ਼ ਟਾਈਪ ਇਸਤੇਮਾਲ ਕਰਨਾ ਹੋਵੇਗਾ। ਮੂਲਤਬੀ ਮੁੱਲ false ਹੈ।

mixed

ਚੋਣਯਾ। ਇਹ ਚਿਹਨਕਾਰੀ ਸ਼ਬਦਾਂ ਦੇ ਦਰਮਿਆਨ ਚਿਹਨਕਾਰੀ ਸ਼ਬਦਾਂ ਦੇ ਆਉਣ ਨੂੰ ਅਪਣਾਉਣ ਲਈ ਹੈ। ਮੂਲਤਬੀ ਮੁੱਲ false ਹੈ।

  • ਜੇਕਰ simpleContent ਐਲੀਮੈਂਟ ਹੈ ਤਾਂ mixed ਪ੍ਰਤੀਯੋਗਿਤਾ ਨਹੀਂ ਹੋ ਸਕਦੀ।
  • ਜੇਕਰ complexContent ਐਲੀਮੈਂਟ ਹੈ ਤਾਂ ਇਹ mixed ਪ੍ਰਤੀਯੋਗਿਤਾ ਮਿਕਸਡ ਐਲੀਮੈਂਟ ਦੀ mixed ਪ੍ਰਤੀਯੋਗਿਤਾ ਨੂੰ ਰਿਹਾਇਤ ਦਿੰਦਾ ਹੈ।

block

ਚੋਣਯਾ। ਇਹ ਵੱਡੇ ਵਿਸ਼ੇਸ਼ ਟਾਈਪ ਨੂੰ ਬਦਲਣ ਲਈ ਰੋਕਣ ਵਾਲਾ ਵਿਸ਼ੇਸ਼ ਵੱਡਾ ਟਾਈਪ ਹੈ। ਇਸ ਮੁੱਲ ਵਿੱਚ #all ਜਾਂ ਇੱਕ ਸੂਚੀ ਹੋ ਸਕਦੀ ਹੈ ਜੋ extension ਜਾਂ restriction ਦੀ ਉਪ ਸੂਚੀ ਹੈ:

  • extension - ਇਹ ਵੱਡੇ ਵਿਸ਼ੇਸ਼ ਟਾਈਪ ਨੂੰ ਬਦਲਣ ਲਈ ਰੋਕਦਾ ਹੈ ਜੋ extension ਰਾਹੀਂ ਵੱਡਾ ਵਿਸ਼ੇਸ਼ ਟਾਈਪ ਹੈ।
  • restriction - ਇਹ ਵੱਡੇ ਵਿਸ਼ੇਸ਼ ਟਾਈਪ ਨੂੰ ਬਦਲਣ ਲਈ ਰੋਕਦਾ ਹੈ ਜੋ restriction ਰਾਹੀਂ ਵੱਡਾ ਵਿਸ਼ੇਸ਼ ਟਾਈਪ ਹੈ।
  • #all - ਇਹ ਸਾਰੇ ਵੱਡੇ ਵਿਸ਼ੇਸ਼ ਟਾਈਪਾਂ ਨੂੰ ਇਸ complexType ਨੂੰ ਬਦਲਣ ਲਈ ਰੋਕਦਾ ਹੈ।

final

ਚੋਣਯਾ। ਇਹ complexType ਐਲੀਮੈਂਟ ਤੋਂ ਵੱਡੇ ਵਿਸ਼ੇਸ਼ ਟਾਈਪ ਨੂੰ ਰੋਕਣ ਲਈ ਹੈ। ਇਸ ਮੁੱਲ ਵਿੱਚ #all ਜਾਂ ਇੱਕ ਸੂਚੀ ਹੋ ਸਕਦੀ ਹੈ ਜੋ extension ਜਾਂ restriction ਦੀ ਉਪ ਸੂਚੀ ਹੈ।

  • extension - ਵਧਾਈ ਵਾਲੇ ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਮਦਦ ਨਾਲ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਰੋਕਣ ਲਈ ਹੈ。
  • restriction - ਸੀਮਾ ਰੱਖਣ ਵਾਲੇ ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਮਦਦ ਨਾਲ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਰੋਕਣ ਲਈ ਹੈ。
  • #all - ਸਾਰੇ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ (ਵਧਾਈ ਅਤੇ ਸੀਮਾਂ) ਨੂੰ ਰੋਕਣ ਲਈ ਹੈ。

ਕੋਈ ਵਿਸ਼ੇਸ਼ਤਾ

ਵਿਕਲਪੀ। ਕਿਸੇ non-schema ਨਾਮ ਸਪੇਸ ਵਾਲੇ ਕਿਸੇ ਹੋਰ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਨਿਰਧਾਰਿਤ ਕਰੋ。

ਇਨਸਟੈਂਸ

ਉਦਾਹਰਣ 1

ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ ਇੱਕ ਨਾਮ "note" ਵਾਲਾ ਜਟਿਲ ਟਾਈਪ ਇਲੈਕਟਰਨ ਹੈ:

<xs:element name="note">
    <xs:complexType>
      <xs:sequence>
	<xs:element name="to" type="xs:string"/>
	<xs:element name="from" type="xs:string"/>
	<xs:element name="heading" type="xs:string"/>
	<xs:element name="body" type="xs:string"/>
      
    
</xs:element>

ਉਦਾਹਰਣ 2

ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ ਇੱਕ ਜਟਿਲ ਟਾਈਪ ਹੈ "fullpersoninfo" ਜੋ ਤਿੰਨ ਵਧਾਈ ਤੱਤਾਂ (address, city ਅਤੇ country) ਦੀ ਮਦਦ ਨਾਲ ਉਸਾਰੀ ਵਿੱਚ ਵਧਾਇਆ ਗਿਆ ਹੈ, ਜੋ ਦੂਜੇ ਜਟਿਲ ਟਾਈਪ "personinfo" ਤੋਂ ਪ੍ਰਾਪਤ ਕੀਤਾ ਗਿਆ ਹੈ:

<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  

<xs:complexType name="fullpersoninfo">
  <xs:complexContent>
    <xs:extension base="personinfo">
      <xs:sequence>
        <xs:element name="address" type="xs:string"/>
        <xs:element name="city" type="xs:string"/>
        <xs:element name="country" type="xs:string"/>
      
    
  

在上面的例子中,上面的 "employee" 元素必须按顺序包含下列元素:"firstname", "lastname", "address", "city" 以及 "country"。