С моделью, которая наследуется от другой на свежем воздухе, им нужно иметь разные пространства имен или они могут использовать одно и то же пространство имен? - PullRequest
3 голосов
/ 22 июля 2011

Итак, у меня есть 2 модели.У меня есть «medicalBillModel», который я хотел бы унаследовать от «clientDocument».По какой-то причине, когда я делаю это, я получаю ошибки, в основном говоря, что пространство имен уже определено.Когда у меня есть модель, которая наследуется от другой в alfresco, нужно ли им иметь разные пространства имен или они могут использовать одно и то же пространство имен?

Я также пытался импортировать пространство имен и удалить объявление пространства имен, но это вызывает эту ошибку:

Caused by: org.alfresco.service.cmr.dictionary.DictionaryException: 06210000 Cannot define class ag:medicalBill as namespace http://www.company.com/model/content/1.0 is not defined by model ag:medicalBill

В настоящее время я нахожусь в процессе поиска в Google, но не могу найти пример одной пользовательской модели, которая наследуется от другой.

clientDocumentModel.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- Definition of new Model -->

<model name="ag:clientDocument" xmlns="http://www.alfresco.org/model/dictionary/1.0">

   <!-- Optional meta-data about the model -->  

   <description>General Client Document</description>
   <author>James Pearson</author>
   <version>1.0</version>

   <imports>
      <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
      <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
   </imports>

   <namespaces>
      <namespace uri="http://www.company.com/model/content/1.0" prefix="ag"/>
   </namespaces>

   <types>

      <type name="ag:clientDocument">
         <title>General Client Document</title>
         <parent>cm:content</parent>
         <properties>
            <property name="ag:clientName">
               <title>Client</title>
                <type>d:text</type>
            </property>
         </properties>
      </type>

    </types>

</model>

medicalBillModel.xml

<?xml version="1.0" encoding="UTF-8"?>

<model name="ag:medicalBill" xmlns="http://www.alfresco.org/model/dictionary/1.0">

   <description>Medical Bill</description>
   <author>James Pearson</author>
   <version>1.0</version>

   <imports>
      <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
      <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
      <import uri="http://www.company.com/model/content/1.0" prefix="ag"/>
   </imports>


   <types>

      <!-- Definition of new Content Type: Standard Operating Procedure -->
      <type name="ag:medicalBill">
         <title>Medical Bill</title>
         <parent>ag:clientDocument</parent>
         <properties>

            <property name="ag:patientNameFirst">
               <title>Patient First Name</title>
                    <type>d:text</type>
            </property>

            <property name="ag:patientNameLast">
               <title>Patient Last Name</title>
                    <type>d:text</type>
            </property>

            <property name="ag:patientMiddleInitial">
               <title>Patient Middle Initial</title>
                    <type>d:text</type>
            </property>

            <property name="ag:totalBillCharges">
                    <title>Total Bill Charges</title>
               <type>d:double</type>
            </property>

                <property name="ag:dateAdmitted">
                    <title>Facility Name</title>
               <type>d:date</type>
            </property>

                <property name="ag:dateDischarged">
                    <title>Facility Name</title>
               <type>d:date</type>
            </property>

            <property name="ag:facility">
                    <title>Facility Name</title>
               <type>d:text</type>
            </property>

         </properties>
      </type>

    </types>

    <aspects>

   </aspects>

</model>

1 Ответ

4 голосов
/ 22 июля 2011

Привет. Каждая модель контента может иметь одно или несколько уникальных пространств имен, взгляните на Wiki

Я знаю, что не ясно сказано, что он должен быть уникальным. Но это так.

Что я не понимаю, почему вы хотите использовать одно и то же пространство имен в разных xml?

Просто используйте несколько типов в одной модели содержимого, а именно:

<model name="ag:clientDocument" xmlns="http://www.alfresco.org/model/dictionary/1.0">

   <!-- Optional meta-data about the model -->  

   <description>General Client Document</description>
   <author>James Pearson</author>
   <version>1.0</version>

   <imports>
      <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
      <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
   </imports>

   <namespaces>
      <namespace uri="http://www.company.com/model/content/1.0" prefix="ag"/>
   </namespaces>

   <types>

      <type name="ag:clientDocument">
         <title>General Client Document</title>
         <parent>cm:content</parent>
         <properties>
            <property name="ag:clientName">
               <title>Client</title>
                <type>d:text</type>
            </property>
         </properties>
      </type>

<!-- Definition of new Content Type: Standard Operating Procedure -->
      <type name="ag:medicalBill">
         <title>Medical Bill</title>
         <parent>ag:clientDocument</parent>
         <properties>

            <property name="ag:patientNameFirst">
               <title>Patient First Name</title>
                    <type>d:text</type>
            </property>

            <property name="ag:patientNameLast">
               <title>Patient Last Name</title>
                    <type>d:text</type>
            </property>

            <property name="ag:patientMiddleInitial">
               <title>Patient Middle Initial</title>
                    <type>d:text</type>
            </property>

            <property name="ag:totalBillCharges">
                    <title>Total Bill Charges</title>
               <type>d:double</type>
            </property>

                <property name="ag:dateAdmitted">
                    <title>Facility Name</title>
               <type>d:date</type>
            </property>

                <property name="ag:dateDischarged">
                    <title>Facility Name</title>
               <type>d:date</type>
            </property>

            <property name="ag:facility">
                    <title>Facility Name</title>
               <type>d:text</type>
            </property>

         </properties>
      </type>

    </types>

</model>

Обычно у меня много типов в одной модели контента. Так что вам не нужно беспокоиться.

Если вы все еще хотите разделить их, используйте разные пространства имен и импортируйте одно и другое. Кстати, почему вы хотите импортировать ClientModel в MedicalBill? Я не вижу никакого использования этого?

...